jQuery:将$.fn.func扩展为$.func-stateful

jQuery:将$.fn.func扩展为$.func-stateful,jquery,jquery-plugins,Jquery,Jquery Plugins,我写了一个插件函数 $.fn.xyz = function(options) { ... } 我可以在元素上调用它,就像这样 $('.eleClass').xyz(); 但我想要的是能够调用我的xyz,而无需通过任何选择器,即 $.xyz(); 也就是说,我基本上想重载我现有的xyz来同时为$(选择器).xyz({a:a,b:b,c:c})和$工作。xyz({a:a})应该直接这样写 $.xyz = function(options) { ... } 如果您想实现这两种方式,可以检查此的

我写了一个插件函数

$.fn.xyz = function(options) {
...
}
我可以在元素上调用它,就像这样

$('.eleClass').xyz();
但我想要的是能够调用我的xyz,而无需通过任何选择器,即

$.xyz();

也就是说,我基本上想重载我现有的
xyz
来同时为
$(选择器).xyz({a:a,b:b,c:c})
$工作。xyz({a:a})
应该直接这样写

$.xyz = function(options) {
...
}

如果您想实现这两种方式,可以检查
的长度


下面是一个演示:

这两种方法都起作用的原因是什么?你试过什么,。顺便说一句,我写了一个模态插件,它可以用两种方式工作,如果你在一个元素上调用它,
$(选择器)。xyz({a:a})
它会把元素放在模态中,如果你只通过传递一个url来调用它,
$。xyz({url:'/a/bcd.php'})
它应该在模态中显示输出。@a.Wolff完成了,谢谢,但这是正确的方法吗?这是一种方法。您可以像这样扩展jquery对象(通常是首选方法):
$.extend($,{xyz:$.fn.xyz})