javascript - jQuery .on click 仅在第一次适用于动态元素

标签 javascript jquery html ajax

我有一个小部件,可以使用 ajax 动态插入网页并将其自己的 jquery 放入 header 中,一切正常。

但是当在该小部件中我粘贴一些额外的脚本来添加一些等待用户输入的动态添加的元素时,它们确实工作正常,但是使用小部件加载的元素最初只能与 .click()< 正确绑定(bind) 事件,而动态元素确实可以工作,但只是第一次出现一些非常奇怪的行为,例如多次触发点击(通过我对该点击进行的调用可以明显看出),然后完全不再工作,可能是什么这里的原因是其他网站的驻留脚本与我的脚本混淆还是其他原因?

我正在使用所有元素:

$( 'body' ).on('click', '.page_link', someFunction);

上面的方法不起作用,所以我尝试了这个,它可以按预期与小部件中预加载的元素一起工作,但对于动态添加的元素则效果不佳:

$( '.page_link' ).click(someFunction);
$( 'body' ).on('click', '.page_link', someFunction);

感谢任何帮助,谢谢。

最佳答案

对于jquery中动态加载的元素,需要重新应用事件(点击)

从 jQuery 1.7 开始,您可以使用 jQuery.fn.on:

$(parentSelector).on(eventName, dynamicChild, function() {});

$(parentSelector) 必须是非动态元素 您可以使用 body 或附加动态元素的父元素

在 jquery 1.7 之前,您可以使用 was 来使用 live():

$(selector).live( eventName, function(){} );

关于javascript - jQuery .on click 仅在第一次适用于动态元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42571115/

相关文章:

javascript jquery 访问被单击的元素

javascript - JSON 数组联合

javascript - 当某些文本字段具有值时启用按钮

javascript - 我想使用 javascript 或 jquery 更改内容

html - 我的主页上的未知黑色区域

html - 如何让流体表与省略号一起使用?

javascript - 如何将 `RegExp.test` 部分应用于字符串?

javascript - 为什么在有效索引位置删除时 splice 方法返回 undefined?

javascript - 使用 THIS 选择当前元素的特定子元素

javascript - Ajax 发布到 PHP 脚本,每 5 秒查询 MySQL DB 性能/问题?