jQuery插件开发:如何正确使用可链接性?

jQuery插件开发:如何正确使用可链接性?,jquery,jquery-plugins,plugins,method-chaining,Jquery,Jquery Plugins,Plugins,Method Chaining,我正在尝试制作一个简单的jQuery插件。我想将它的方法称为如下链接: $("#div").myPlugin({ /* options */ }).add(".span", { /* options */ }).add(".span", { /* options */ }).run(); $("#div").myPlugin("add", "foo"); 我找到了一些关于以下呼叫的基本教程: $("#div").myPlugin({ /* options */

我正在尝试制作一个简单的jQuery插件。我想将它的方法称为如下链接:

$("#div").myPlugin({
    /* options */
}).add(".span", {
    /* options */
}).add(".span", {
    /* options */
}).run();
$("#div").myPlugin("add", "foo");
我找到了一些关于以下呼叫的基本教程:

$("#div").myPlugin({
    /* options */
}).add(".span", {
    /* options */
}).add(".span", {
    /* options */
}).run();
$("#div").myPlugin("add", "foo");

但这不是我想要的。基本的教程几乎都是一样的,我不知道我要用谷歌搜索什么

jQuery教程展示了如何使用

我知道的唯一方法是为每个方法编写插件,但这对我来说似乎很肮脏

jQuery.fn.myPlugin = function(); // returns this
jQuery.fn.myPluginAdd = function(); // returns this
jQUery.fn.myPluginRun = function();
$("#div").myPlugin().myPluginAdd("item1").myPluginRun();
提前谢谢

夸夸其谈, 对于插件,网上提供的最佳教程如下:


我看过他的jquery插件视频。很高兴看到并从中学习。

正如您所说的“这对我来说似乎很肮脏”,这正是您提到的jQuery页面所说的:

在任何情况下,一个插件都不能声明超过一个 jQuery.fn对象中的命名空间

可链接性与您的回报有关。如果你想从你的插件链接方法,你必须返回一个包含你的方法的对象。小提琴:

如您所见,当您第一次调用
yourPlugin()
时,将返回一个包含插件方法的对象。这样,您就可以将
插件
链接到
方法
类中的其他方法

如果您查看
add
()函数,您可以看到我再次返回了实例,因此这里没有什么新内容,正如我刚才解释的,我这样做是为了使方法可以链接

尝试一下,尝试添加自己的方法。请记住,使用这种技术,您将无法将插件方法和jQuery方法链接起来。实际上,如果您在插件中添加一个方法来禁用插件链,您可以如下所示:


可能有更好的方法来完成我所做的工作,但我希望这会有所帮助。

可链接性意味着插件范围返回
this
元素,允许您将其他插件或所谓的jQuery方法链接到所需的(
this
)元素(元素选择器)。如果我们知道你想要实现什么(在一个基本的例子中),这会让你的问题变得更加复杂clear@roXon我一般都知道链接能力,但不知道如何在jQuery插件开发中做到这一点。我在上面的第一行代码中提到了我的目标。我必须在每个方法中返回“this”,但不知道如何以及在何处放置公共方法。这只是一个语法问题,总的来说我知道该怎么做。但是谢谢你的回复!这正是我想要的。非常感谢!:-)