2011-10-01 29 views
1

在我寫的腳本中,我注意到有兩種工作方式可以從元素中「解除綁定」事件。從元素中刪除事件.each與jQuery中的.unbind ...有什麼區別?

$("elementName").each(function() { $(this).unbind('click'); }); 

而這樣一來......

$("elementName").unbind('click'); }); 

我知道通過元素.each環,但第二腳本似乎很好的工作。那麼我錯過了什麼,爲什麼使用.each

謝謝大家!

+0

兩者相當 – Petah

回答

2

在這種情況下沒有理由使用.each。大多數jQuery函數都是用於處理匹配元素的組,因此$("elementName").unbind('click')是一次將unbind應用於多個元素的最佳方式;然而,如果你喜歡打字,你可以使用.each迭代器並且一次完成它們。

當您想對某些或所有匹配的元素進行不同的操作時,通常會使用.each。例如:

$('a').each(function(i) { $(this).addClass('pancakes' + i) }); 

將增加一個不同的類,以每<a>和將是一個適當使用.each。或者unbind示例:

$('a').each(function() { 
    var $this = $(this); 
    if($this.data('where-is') == 'pancakes-house') 
     $this.unbind('click'); 
    // Yes, there are other ways to do this, this is just an illustrative example. 
}); 
+0

需要......因此,'.each'的真正優勢在於,它真的能夠通過元素「循環」,使您能夠增加......? – chrisb

+0

+1不錯,完整答案。 –

+0

@chrisb:對,'.each'是一個迭代器,允許您單獨處理匹配的元素。如果你不需要區分匹配的元素,那麼就不需要'.each'。 –

0

基本上是同一件事。

但是,如果您還想對每個匹配的元素執行其他操作,則可以使用$.each

相關問題