0

画像にカーソルを合わせたときに表示されるボタンが必要です。ボタンをクリックするとフォームが表示されますが、[ファイルを選択]をクリックするとフォームが消えないようにします。

<script type="text/javascript">

$("#profile_pic, #edit_pic").hover(
   function(){
      $('#edit_pic').removeClass('hidden');
   }
);
$("#edit_pic").click(function (){
 $("#upload_form").removeClass('hidden');
});

</script>

<html>

<div id="profile_pic">
</div>

<div id="edit_pic">
</div>

<div id="upload_form">
  //upload image form using cakephp
            <?php 
            echo $this->Form->create('Account', array('enctype' => 'multipart/form-data', 'url' => array('controller' => 'images', 'action' => 'before_crop', 'accounts' , $current_user['id']))); 
            echo $this->Form->input('image_relpath', array('type' => 'hidden'));
            echo $this->Form->input('Account.image', array('type' => 'file', 'label' => false));
            echo $this->Form->end('Upload');
         ?>&nbsp;
</div>

</html>

jqueryが間違っているのか、cakephpが自動的に混乱しているのかはわかりませんが、[ファイルを選択](フォームによって作成されたボタン)をクリックすると、フォーム全体が消えます。

4

3 に答える 3

0

あなたのコードには、物が消えている理由を示すものは何もありません。あなたの例が完全ではないことは明らかです。発生したエラーを再現する完全な例を提供していただければ、何が問題なのかを突き止めて問題を解決することができます。

于 2012-11-19T19:48:24.517 に答える
0

I can easily spot some issues on your code.

First on HTML, don't forget to open and close quotes in tag's attributes.

Second, on your jQuery selector, when referring to an ID, never forget to use the sharp symbol #.

Try fixing them, and see what happens.


You can also use this example:

<style type="text/css">
#edit_pic, #upload_form {
    display: none;
}
</style>

<script type="text/javascript">
$("#profile_pic").mouseenter(function(){
    $("#edit_pic").show();
});

$("#edit_pic").click(function(){
    $("#upload_form").show();
});
</script>

Be careful, because in this way, the #edit_pic button will never disappear once it's shown.

于 2012-11-19T19:26:26.663 に答える
0

.click 関数に「return false」を追加すると、この問題は解決しました。

$("#edit_pic").click(function (){
  $("#upload_form").removeClass('hidden')
  return false;
});
于 2012-11-19T19:49:17.260 に答える