我正在看一个jQuery插件,它有一个单一的功能。在通过构造函数参数设置适当的默认值后,函数定义了几个辅助函数,然后在最后一部分返回对this.each()的调用,如下所示:
return this.each(function() {
//long method defined here
});
我理解使用this.each()来修改匹配的DOM元素等等,但是return语句实现了什么?某种经过修改的DOM元素数组,然后可以在其他调用中链接?
我在这个网站上看到了这个。但我无法确定return
在这里的作用。感谢您帮助澄清这一点。
答案 0 :(得分:10)
.each
返回它被调用的元素,因此在这种情况下,可能是为了保持方法在该选择器上链接的能力。这意味着如果调用插件'S方法foo
,您应该可以
$("mySelector").foo().show();
因为foo
返回.each
的结果,基本上是$("mySelector").
希望这是有道理的。
答案 1 :(得分:7)
它允许一个人在一堆元素上调用插件或事件,然后将相同的功能或事件应用于所有
所以,如果你这样做:
$('.selector').myPlugin();
如果,让我们说,.selector
包含10个元素,那么所有10个元素都会得到myPlugin
所做的任何内容。
返回.each
语句的原因是因为.each()
返回给出的任何内容,它允许您在一个jQuery元素上链接多个函数和插件。
例如:
$('.selector').myPlugin().yourPlugin();
答案 2 :(得分:5)
答案 3 :(得分:4)
这使得保持对象链成为可能,所以你可以像这样调用jquery方法:
$("selector").css().mouseover().etc().blahblah();
答案 4 :(得分:2)
它返回JQuery对象,该方法被调用,如docs中所述。所以你可以在返回的值上调用另一个方法。
// without method chaining
myobject.a()
myobject.b()
myobject.c()
// with method chaining
myobject.a().b().c();