1

JavaScript 関数内で値を保持したいのですが、jQuery を使用してクリックまたはホバー状態を検出します。

function foo(bar){
 var choc=bar;
}

クリックfoo()すると、最初のクリックと2番目のクリックを検出して、画像を入れ替えることができます。

例:

function foo(bar) {
    var choc=id;    
    $(id).click(function () {
        alert('first click');
    }, function () {
        alert('second click');
    }); 
}

最初のクリックしか返せません。これは私がやろうとしていることです:

うまくいかない例

<a href="javascript:open(5);" class="open">open <img id="5" class="swap5" src="down.png" /></a> 
<div id="box5">press the up button to close me</div>

jQuery

$(document).ready(function() {
        $(".open").click(function(event){
              var id = event.target.id;
              $('#box' + id).slideToggle();
              $(".swap"+id).attr("src", "up.png");
        }, function () {
                var id = event.target.id;
                $('#box' + id).slideToggle();
                $(".swap"+id).attr("src", "down.png");
        });
    });
4

3 に答える 3

3

.toggleの代わりに使用し.clickます。

$(document).ready(function() {
    $(".open").toggle(function(event){
          event.preventDefault();
          var id = event.target.id;
          $('#box' + id).slideToggle();
          $(".swap"+id).attr("src", "up.png");
    }, function (event) {
          event.preventDefault();
          var id = event.target.id;
          $('#box' + id).slideToggle();
          $(".swap"+id).attr("src", "down.png");
    });
});

href="javascript:open(5);"また、<a>タグの紛失。href="#"代わりに使用してください。

于 2012-06-07T14:29:20.360 に答える
2

これはかなりハッキーな解決策ですが、これが私の見解です。0で初期化されるカウンター変数を宣言します。クリックしてインクリメントし、アクションを実行するために2であるかどうかを確認します。

var counter = 0;

function foo(bar) {
  var choc=id;    
  $(id).click(function () {
    if(counter == 2) {
     //Perform action
     counter = 0; //reset counter
    } else {
      counter++;  //Increment counter
    }
  });
}
于 2012-06-07T14:33:38.777 に答える
0

ダブルクリックイベントハンドラーを使用してみましたか?次のURLにアクセスして、説明を確認してください。http: //api.jquery.com/dblclick/ 十分に文書化されているため、実装するのは簡単です。

于 2012-06-07T14:31:25.083 に答える