Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在创建元素之后执行jQuery函数吗_Javascript_Jquery_Events_Click - Fatal编程技术网

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

Javascript 在创建元素之后执行jQuery函数吗,javascript,jquery,events,click,Javascript,Jquery,Events,Click,很抱歉我的英语不好。 我做了一个jQuery函数,当用户调用该函数时,它会在页面上创建一个元素。对于那个elemet,我做了一个jQuery点击事件,它工作正常, 但是如果用户像这样调用函数3次: $.someFunction(); $.someFunction(); $.someFunction(); 如果用户单击第一个元素,它将执行单击事件回调函数中的3次操作;如果用户单击第二个元素,它将执行单击事件回调函数中的2次操作;如果用户在最后一个元素上执行,它将执行一次操作。 我希望当用户单击每

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

$.someFunction();
$.someFunction();
$.someFunction();
如果用户单击第一个元素,它将执行单击事件回调函数中的3次操作;如果用户单击第二个元素,它将执行单击事件回调函数中的2次操作;如果用户在最后一个元素上执行,它将执行一次操作。
我希望当用户单击每个元素时,回调函数只发生一次。

如何解决该问题?

尝试执行以下操作:

$(".element").unbind("click").bind("click", function(){
    alert('a');
});

将事件绑定到创建的元素,而不是所有现有元素

$.somefunction = function() {
    $("<div />").text("click me!").bind("click",function(){
        alert("Hello World!");
    }).appendTo("body");
}
$.somefunction=function(){
$(“”)。文本(“单击我!”)。绑定(“单击”,函数(){
警报(“你好,世界!”);
}).附于(“主体”);
}

更简单:使用jquery.on

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

{
// do your work here
});

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

显示这是如何实现的?您可能正在基于
名称
属性绑定事件,这将导致事件绑定到每个元素的次数
n
因为您将使用所述
名称
属性并添加另一个
单击
事件。我建议为每个动态创建的元素指定一个唯一的
id
,并以这种方式绑定事件。您应该显示如何在函数中设置事件单击处理程序,或者在何处设置事件单击处理程序。on不是创建委派事件的语法。您的代码与
$('.some selector')相同。请单击(function(){