0

对不起,我的英语不好。
我做了一个 jQuery 函数,当用户调用该函数时,它会在页面上创建一个元素。对于那个元素,我做了一个 jQuery click 事件,它工作正常,
但是如果用户像这样调用函数 3 次:

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

如果用户点击第一个元素,它将在点击事件回调函数中执行3次,如果用户点击第二个元素,它将在点击事件回调函数中执行2次,如果用户在最后一个,它会做一次。
我希望当用户单击每个元素时,回调函数只会发生一次。
我该如何解决这个问题?

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

尝试做类似的事情:

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

更简单:使用 jquery.on

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

{
// do your work here
});

使用 jquery(在旧版本中为“live”),它将绑定到与该选择器匹配的任何元素,无论何时将其添加到 DOM。

于 2012-11-08T18:49:15.553 回答