我不懂新的jQuery.sub()函数

lea*_*gdb 7 jquery

有人能解释一下jQuery的新子函数http://api.jquery.com/jQuery.sub/

请举出你自己的例子,这很容易理解.

Rob*_*nik 7

并排的jQueries

它创建了一个具有不同功能的并排jQuery对象.您可以在其中创建的其他jQuery实例中提供一些插件和其他插件jQuery.sub().

现实世界的例子

我能想到的一个用法示例是有两个具有相同名称但功能不同/工作的公共插件,因此您可以在一个jQuery中加载第一个,在另一个jQuery中加载第二个.这样,即使它们共享相同的名称,您也可以使用它们.

但除此之外,我认为函数在jQuery文档中得到了很好的解释.我认为不需要任何额外的解释.它只缺少一些可信的例子,显示了一个非常有用的使用场景.

实际例子

现在必须更改jQuery插件以支持此功能,因为它们通常会这样做:

(functio($){
    // plugin code
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,此函数闭包参数被硬编码为jQuery.要在自己的jQuery领域(作为开发人员定义)中包含特定插件,应将此代码更改为:

var $$ = jQuery.sub();
(functio($){
    // plugin code
})($$);
Run Code Online (Sandbox Code Playgroud)

但这意味着开发人员总是必须更改插件代码,这些代码并不是真的有用.我想jQuery必须提出某种插件管理器,所以加载插件只会在这个管理器中加载它们,你必须通过使用这个管理器并提供jQuery领域将它们包含在jQuery对象中.

我没有看到任何其他使插件通用的可能性,因此它们可以在任何jQuery实例中使用而无需更改插件代码.

在原始文档中提供的示例是某种让他们看到它是如何完成的但是我不认为这是一个非常好的示例bacuse它只是将所有sub()插件放在一个共同的原始jQuery插件(在该示例中myplugin()).

  • 例如,我们有一个页面使用旧的[bassistance.de自动完成插件](http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/)我们需要加载到一个包含所有页面的div中加载了jQuery UI,包括其自动完成控件.两者都定义了`$ .autocomplete`.我们可以使用jQuery.sub来允许加载的div加载低音自动完成并像以前一样使用它而不会干扰使用jQuery UI自动完成的页面的其余部分.(虽然在实践中我认为我们只是要重命名其中一个功能.) (3认同)