2013-01-08 56 views
-1

可能重複:
jQuery - convert .live() to .on()
JQuery ‘on’ vs. ‘live’
Turning live() into on() in jQuery。對()的jQuery

我知道.live()已過時,但。對()越來越我有些錯誤。 當我動態生成圓頂時,它不起作用,它只在第一次點擊時起作用。與.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 
}); 

有什麼不對?

+10

你沒有提供的上下文。 .live的上下文是'document'。這已被問了很多次。 –

+0

我很抱歉! – Daniele

回答

2

檢查documentation here.on作品略有不同:

$(document).on("click", ".item", function(event){ 
    alert('test'); 
    // ajax call that regenerates .item element 
}); 
2

由於與阿賈克斯的DOM變化,你需要提供父母在你的電話上像這樣的:

$("#itemParent").on("click", ".item", function(event){ 
    alert('test'); 
}); 
0

正如凱文B中提及的,使用文檔作爲代表團的背景下,或更好的靜態父:

$(document).on('click','.item', function(e) { 
    alert('test'); 
    // ajax call that regenerates .item element 
});