我有一段 jQuery 循环遍历给定 div( #container
)中的每个元素,并在每次单击跨度时发出 javascript 警报。如果 <span>
是静态的,这就可以正常工作。
但是,如果我使用一段代码,例如:
$(someLink).click(function(){
$("#container").html( <new html with new spans> )
});
jQuery 代码不会触发。奇怪的是
我的问题是:是否存在我的 Click 事件不适用于动态创建的项目的原因?我想我必须在我的文档准备好或心跳脚本(每 100 毫秒触发一次)中添加一些东西来连接事件?
原文由 JustAnotherDeveloper 发布,翻译遵循 CC BY-SA 4.0 许可协议
做这个:
其中
#wrapper
是一个 静态元素,您可以在其中添加动态链接。因此,您有一个硬编码到 HTML 源代码中的包装器:
然后用动态内容填充它。这个想法是将事件委托给该包装器,而不是直接在动态元素上绑定处理程序。
顺便说一句,我推荐 Backbone.js - 它为这个过程提供了结构: