0

英語が下手で申し訳ありません..
ユーザーが関数を呼び出すと、ページ上に要素を作成するjQuery関数を実行しました。その要素に対して、私はjQueryクリックイベントを実行し、正常に動作しましたが
、ユーザーが関数を次のように3回呼び出した場合:

$.someFunction();
$.someFunction();
$.someFunction();

ユーザーが最初の要素をクリックすると、クリックのイベント コールバック関数で 3 回実行されます。ユーザーが 2 番目の要素をクリックすると、クリックのイベント コールバック関数で 2 回実行されます。最後のもの、それは一度それをします。
ユーザーがすべての要素をクリックすると、コールバック関数が 1 回だけ発生するようにします。
どうすればその問題を解決できますか?

4

3 に答える 3

1

すべての既存の要素ではなく、作成された要素にイベントをバインドします。

$.somefunction = function() {
    $("<div />").text("click me!").bind("click",function(){
        alert("Hello World!");
    }).appendTo("body");
}
于 2012-11-08T18:47:09.693 に答える
0

さらに簡単: jquery.on を使用

$('.some-selector').on('click', function()

{
// do your work here
});

jquery をオン (古いバージョンでは「ライブ」) にすると、DOM にいつ追加されたかに関係なく、そのセレクターに一致するすべての要素にバインドされます。

于 2012-11-08T18:49:15.553 に答える
0

次のようなことを試してください:

$(".element").unbind("click").bind("click", function(){
    alert('a');
});
于 2012-11-08T18:43:23.603 に答える