可能重复:
jQuery - convert .live() to .on()
JQuery ‘on’ vs. ‘live’
Turning live() into on() in jQuery
我知道.live()已被弃用,但.on()让我有些错误。 当我动态生成圆顶时它不起作用,它只在第一次点击时起作用。虽然与.live()相同的代码可以正常工作。我正在使用jquery 1.8
工作代码
$('.item').live('click', function(e) {
alert('test');
// ajax call that regenerates .item element
});
此代码仅在首次点击时起作用:
$('.item').on('click', function(e) {
alert('test');
// ajax call that regenerates .item element
});
怎么了?
答案 0 :(得分:2)
由于您的Ajax更改了dom,您需要在通话中提供父母,如下所示:
$("#itemParent").on("click", ".item", function(event){
alert('test');
});
答案 1 :(得分:2)
检查documentation here。 .on
的工作方式略有不同:
$(document).on("click", ".item", function(event){
alert('test');
// ajax call that regenerates .item element
});
答案 2 :(得分:0)
正如Kevin B所提到的,使用文档作为委托的上下文,或者更好的静态父代:
$(document).on('click','.item', function(e) {
alert('test');
// ajax call that regenerates .item element
});