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