在jQuery 1.8之前,我可以使用.live()在单击按钮时触发,该按钮是由jquery动态插入的。
现在,.on()和.bind()都不适用于加载页面后添加到DOM的元素。
现在有哪些选择?
答案 0 :(得分:15)
$(parent_element).on("click", child_selector, function(evt) {
});
http://api.jquery.com/on/#direct-and-delegated-events
委托事件的优势在于它们可以处理来自稍后添加到文档的后代元素的事件。通过选择在附加委托事件处理程序时保证存在的元素,您可以使用委派事件来避免频繁附加和删除事件处理程序的需要。例如,此元素可以是模型 - 视图 - 控制器设计中视图的容器元素,如果事件处理程序想要监视文档中的所有冒泡事件,则可以是文档。在加载任何其他HTML之前,文档元素在文档的头部可用,因此可以安全地将事件附加到那里而无需等待文档准备就绪。
答案 1 :(得分:2)
委托比处理程序
更有效率$(document).delegate('click', "selector", function() {
//your stuff
});