2013-01-31 27 views
1

我正在嘗試這個簡單的代碼here。它不適用於實際的click事件或註釋掉的事件。有人可以解釋爲什麼嗎?我以前也有過not的問題...jQuery live(「click」,function(){...})對身體不起作用

+5

請始終在這裏包含相關的代碼。 –

+0

從jQuery 1.7開始,'.live()'方法已被棄用。使用'.on()'附加事件處理程序。老版本的jQuery用戶應該使用'.delegate()'而不是'.live()'。 –

+0

@dystroy,那麼,大家告訴OP提供一個小提琴,這就是爲什麼我這樣做.. – SexyBeast

回答

6

.live從v1.7開始已經在jQuery中被棄用,並且在v1.9中被刪除。

您應該將其替換爲.on()

.on有2個語法爲綁定元素,而.live只有1

如果該元素存在於你要綁定的時候,你做這樣的:

$('.element').on('click', function(){ 
}); 

你甚至可以使用速記:

$('.element').click(function(){ 
}); 

如果元素不會在時間存在,或者新的將被添加(這是什麼.live已正常使用)的,你需要使用「事件代理」:

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

注意:您要綁定到最接近的靜態元素,不總是document

+0

+1很好解釋...... –

7

這只是因爲長期棄用live函數現在已經從jQuery中刪除。

更換

$("body").live("click",function() { alert("coo"); }); 

$("body").on("click",function() { alert("coo"); }); 

看的this page右上角: 「去掉1.9」。

+0

這是唯一的原因嗎?我知道'live'已被棄用,但它不起作用嗎? – SexyBeast

+1

它不只是被棄用。它已被v2刪除,您使用jsFiddle示例進行了定位。回滾到1.8,它的工作。 – Archer

+1

自1起刪除。9 –

1

live()已被 棄用 已刪除。在()上使用。

+1

'live'已被刪除,不贊成停止工作...... – gdoron

1

如果您正在使用jquery 2.0版本,那麼你必須得到migrate 1.0

看到這一點:http://jsfiddle.net/CRYDV/1/

,否則你有.on()處理工作,因爲在上面的答案建議。