可能重复:
jquery:on vs live
当我通过 javascript动态创建对象时,我曾经使用.live()方法,因为在我将事件侦听器声明为单击时,该元素尚未在 DOM 中,因此当动态添加元素时通过用户操作, .live('click') 方法可以解决问题。
但是,在 jQuery v1.9.0 中,没有 live 方法,文档建议使用.on()代替,但这在这种示例中不起作用......
这是一个例子:http: //jsfiddle.net/promatik/C3DLQ/。
仅当您将 jQuery 设置为 1.8.3 或 Migrate 插件时,它才会起作用。
$("#create").click(function(){
$('body').append($('<div id="test" class="btn">click me<div>'));
});
$("#test").on("click", function(){
alert("worked!");
});
我实际上测试了其他方法,如delegate()和bind(),但没有一个有效。