在我写的一个脚本中,我注意到目前有两种方法可以从一个元素中“取消绑定”一个事件。
$("elementName").each( function() { $(this).unbind('click'); });
这样......
$("elementName").unbind('click'); });
我知道.each
循环遍历元素,但第二个脚本似乎也可以正常工作。那么我错过了什么,为什么要使用.each
?
谢谢大家!
答案 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
。