-1

ネストされたイベントに問題がある

これはhtmlコードだと考えてください:

<button id="first">first button </button>

<button id="second">second button </button>

これはjQueryコードです:

$(document).ready(function() {
$('#first').click(function() {
    $('#second').click(function() {
        alert('test');
    });
});

});

最初のボタンが n 回クリックされたとき ... 次に最初のボタンを 1 回クリックすると、アラートが n 回表示されます。

私はこれを処理したい:

最初のボタンをn回クリックすると...最初のボタンを1回クリックすると、アラートが1回 表示されます

one()ただし、メソッドを使用せずに

4

3 に答える 3

0

あなたはこれを行うことができます -

var isBind = false;
$('#first').click(function() {
   if(!isBind){
    $('#second').click(function() {
        alert('test');
    });
    isBind = true;
   }
});
于 2013-05-28T17:03:37.573 に答える
0

off()イベントのバインドを解除するために使用するだけです:

$(document).ready(function() {
    $('#first').click(function() {
        $('#second').off('click').click(function() {
            alert('test');
        });
    });
});
于 2013-05-28T17:03:43.653 に答える
0

フラグを使用します (スレッド化の概念ではロックと呼ばれます)。

次のようなもの:

$(document).ready(function() {
    var clicked = false;
    $('#first').click(function() {
        clicked = true;
    });
    $('#second').click(function() {
         if(clicked){
            alert('test');
            clicked = false;
         }
    });
});

window.clicked2 番目のイベントは true の場合にのみ使用されます。

私は知っています、これは醜いですが..それは機能し、理解するのは簡単です. (そして、複数のイベントリスナーをサポートします。オブジェクトの属性の名前を変更することを忘れないでくださいwindow)

于 2013-05-28T17:06:11.477 に答える