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