从jQuery中的元素.each与.unbind中删除事件......有什么区别?

时间:2011-10-01 03:22:05

标签: javascript jquery javascript-events

在我写的一个脚本中,我注意到目前有两种方法可以从一个元素中“取消绑定”一个事件。

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

这样......

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

我知道.each循环遍历元素,但第二个脚本似乎也可以正常工作。那么我错过了什么,为什么要使用.each

谢谢大家!

2 个答案:

答案 0 :(得分: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.
});

答案 1 :(得分:0)

基本上是一样的。

但是,如果您还想对要匹配的每个元素执行其他操作,则可以使用$.each