2012-02-22 42 views
3

在jquery1.71中,.live()已被棄用。儘管如此,它仍然有效爲什麼.live()有效,但不是.on()?

var toggleBtn = document.createElement('input'); 
toggleBtn.id = 'toggleBtn'; 
toggleBtn.type = 'button'; 
toggleBtn.value = 'Close'; 
box.appendChild(toggleBtn); 

$('#toggleBtn').live('click', function() { 
    alert("hihi");    
}); 

我試過推薦.on()。奇怪的是,這失敗

var toggleBtn = document.createElement('input'); 
toggleBtn.id = 'toggleBtn'; 
toggleBtn.type = 'button'; 
toggleBtn.value = 'Close'; 
box.appendChild(toggleBtn); 

$('#toggleBtn').on('click', function() { 
    alert("hihi");    
}); 
+0

已棄用並不意味着「已刪除」或「功能失常」。這是「不要使用它,因爲它將在未來某個時候被刪除」。 – 2012-02-22 03:15:00

+0

除非我失去了一些東西,'on'完全正常:http://jsfiddle.net/twawk/1/ – Thomas 2012-02-22 03:17:57

回答

5

請確保您完全閱讀文檔。對於.on()要像.live()(或.delegate())一樣工作,第二個參數必須是要委派給的選擇器。

$(document).on('click', '#toggleBtn', function() {}); 

當然,您可以使用更具體的選擇器。

+0

@Xander真棒,ty。 – 2012-02-22 03:15:45

+0

它的工作原理!謝謝,我會在下次發帖之前先閱讀文檔 – ngzhongcai 2012-02-22 03:17:35

相關問題