从jQuery 1.7开始, 您应该使用[
jQuery.fn.on]:
$(staticAncestors).on(eventName, dynamicChild, function() {});在此之前 ,推荐的方法是使用
live():
$(selector).live( eventName, function(){} );但是,
live()在1.7中弃用
on(),而在1.9中完全删除了。该
live()签名:
$(selector).live( eventName, function(){} );…可以替换为以下
on()签名:
$(document).on( eventName, selector, function(){} );例如,如果您的页面正在使用类名动态创建元素,则
dosomething可以将事件绑定到 已经存在的父级
(这是问题的小结,您需要绑定到现有的东西,而不要绑定到动态内容),则可以(也是最简单的选择)是
document。尽管记住[
document可能不是最有效的选择]。
$(document).on('mouseover mouseout', '.dosomething', function(){ // what you want to happen when mouseover and mouseout // occurs on elements that match '.dosomething'});绑定事件时存在的任何父项都可以。例如
$('.buttons').on('click', 'button', function(){ // do something here});适用于
<div > <!-- <button>s that are generated dynamically and added here --></div>



