在创建元素之后执行jQuery函数

时间:2012-11-08 18:40:58

标签: javascript jquery events click

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

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

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

3 个答案:

答案 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。