Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery插件编写-多个方法作为函数对象的属性_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript jQuery插件编写-多个方法作为函数对象的属性

Javascript jQuery插件编写-多个方法作为函数对象的属性,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,假设您希望jQuery插件有多种方法。我已经读到,您应该保持jQuery命名空间干净,并将方法名传递给插件: $('#el').plugin('method'); 能否将这些方法添加到插件函数对象 $.fn.plugin.method = function(){} $.fn.plugin.method2 = function(){} // etc 但是现在,这些方法是在函数对象上调用的,而不是在jQuery集合上调用的 您能否$.proxy()使用plugin.method函数,以便在根jQ

假设您希望jQuery插件有多种方法。我已经读到,您应该保持jQuery命名空间干净,并将方法名传递给插件:

$('#el').plugin('method');
能否将这些方法添加到
插件函数对象

$.fn.plugin.method = function(){}
$.fn.plugin.method2 = function(){}
// etc
但是现在,这些方法是在函数对象上调用的,而不是在jQuery集合上调用的

您能否
$.proxy()
使用
plugin.method
函数,以便在根jQuery集合上调用它们,并按预期工作?

甚至可以向函数“对象”添加属性吗?

以下是最终目标可能的样子:

var $me = $('#me').person();  // init

$me.person.jump().rollOver().sleep();

其中,跳转、滚动和休眠是
person
函数对象的方法,而不是jQuery.fn对象。

是的,可以向函数对象添加属性,也可以代理它们。您目前如何在插件代码中调用它们?目前这完全是假设,因此您应该对此感兴趣:。我在前面查看了jQ UI以了解它们是如何实现的。由于widget工厂系统的学习曲线和对jqueryui库的依赖性,我不确定这是否是我想要走的方向。我认为上面的例子可以通过jQuery单独完成,只是不确定如何工作:-\n您只需要一小块jQueryUI就可以使用小部件工厂,而不是整个库。它将附带完成所需的所有样板文件(但使用不同的语法,如
$me.person('jump').person('rollover')
)。