2012-07-31 65 views
0

我在jQuery中使用「.on」方法遇到問題,已經通過AJAX插入內容。我目前使用「.live」,但這已被棄用,「.on」是我所追求的。在AJAX加載的內容jQuery中的onclick事件

我的工作代碼爲:

$('.folderadmin').live("click", function() 
{ 
    // Do stuff 
}) 

當我更換。對.live,它不能正常工作。我相信這是因爲元素.folderadmin通過AJAX加載 - 因此我們需要使用.live來訪問它。如何訪問DOM並使用.on識別.folderadmin?

+0

有快速查看'on'的API文檔,你會注意到它需要更多的參數。比'活'做/做。 (事件[,選擇器] [,數據],處理器(事件對象))'與'.live(事件,處理器(事件對象))''。 – Stefan 2012-07-31 08:42:14

+0

你正在使用哪個版本的jquery? – 2012-07-31 08:45:11

+0

1.7.2 - 此外,我使用的是與第一個示例中所示的相同的技術,但它不起作用;我認爲這是因爲內容是ajaxed。不確定。 – 2012-07-31 08:46:31

回答

5
$('.folderadmin').live("click", function() { 
    // Do stuff 
}); 

是相同

$(document).on("click", '.folderadmin', function() { 
    // Do stuff 
}); 

但它是沒有必要綁定到document,你可以結合的.folderadmin父母容器,有已經存在於DOM樹。

$('#the_parent_id').on("click", '.folderadmin', function() { 
    // Do stuff 
}); 
+0

這工作像一個魅力;非常感謝你。經過很多努力, – 2012-07-31 09:00:43

+0

幫助我....謝謝! – ron 2013-04-27 21:23:30

0

你應該檢查你的jQuery版本,因爲是。對jQuery的1.7版,其中.live()方法顯然是過時
.on()
應該是這樣說:

$(".folderadmin").on("click", function(){ 
    //enter code here 
}); 
+1

只是一個簡單的說明,自從它發佈以來,我一直在使用1.7.2,而live()對我來說沒有任何問題。 – robertp 2012-07-31 08:50:33

+0

只需閱讀文檔,它說它確實被棄用。奇怪,仍然有效... – robertp 2012-07-31 08:55:26

+0

已過時,但有效並正在開展工作。哦,問題解決了。 – 2012-07-31 09:01:14