我很抱歉我的英语不好..
我做了一个jQuery函数,当用户调用该函数时,它在页面上创建一个元素。对于那个elemet,我做了一个jQuery点击事件,它的工作正常,
但是如果用户像这样调用函数3次:
$.someFunction();
$.someFunction();
$.someFunction();
如果用户单击第一个元素,它将在click的事件回调函数中执行3次,如果用户单击第二个元素,它将在click的事件回调函数中执行2次whats,如果用户执行了在最后一个,它会做一次。
我希望当用户点击每个元素时,回调函数只会发生一次
我该如何解决这个问题?
答案 0 :(得分:1)
将事件绑定到创建的元素而不是所有现有元素。
$.somefunction = function() {
$("<div />").text("click me!").bind("click",function(){
alert("Hello World!");
}).appendTo("body");
}
答案 1 :(得分:0)
尝试做类似的事情:
$(".element").unbind("click").bind("click", function(){
alert('a');
});
答案 2 :(得分:0)
更简单:使用jquery.on
$('.some-selector').on('click', function()
{
// do your work here
});
使用jquery(&#34; live&#34;在旧版本中)它将绑定到与该选择器匹配的任何元素,无论它何时被添加到DOM。