jQuery如何将onclick事件绑定到动态添加的HTML元素上
jQuery如何将onclick事件绑定到动态添加的HTML元素上
这个问题已经在这里有了答案:
我想在使用jQuery动态插入的元素上绑定一个onclick事件。
但是它从来没有运行绑定的函数。如果您能指出为什么这个示例不起作用,并且如何使其正常运行,我将感激不尽:
Test of click binding
problem: to bind a click event to an element I append via JQuery.
The link is created, then added here below:
Another is added here below:
编辑:我已将示例编辑为包含两个插入方法的元素。 在这种情况下,alert()
调用永远不会执行。(感谢@Daff在评论中指出)
admin 更改状态以发布 2023年5月23日
第一个问题是当你在一个有多个元素的jQuery集合上调用append时,会为每个元素创建一个要追加的元素的克隆,从而失去了附加的事件监听器。
另一种方法是为每个元素创建链接:
function handler() { alert('hello'); } $('.add_to_this').append(function() { return $('Click here').click(handler); })
另一个潜在的问题可能是事件监听器在元素添加到DOM之前就被附加了。我不确定这是否有什么影响,但我认为这种行为可能会被认为是不确定的。更为可靠的方法可能是:
function handler() { alert('hello'); } $('.add_to_this').each(function() { var link = $('Click here'); $(this).append(link); link.click(handler); });