假设我有以下 jQuery 插件:
$.fn.myPlugin = function () {
//plugin code
}
通常,您会在一定数量的元素上调用插件,如下所示:
$("body").myPlugin();
<小时/>
有什么方法可以在不指定元素的情况下调用我的插件吗?
我尝试像这样调用它:$.myPlugin();
,但这不起作用。
有效的是:$().myPlugin();
,但是这是调用它的正确方法吗?
最佳答案
快速的编写方式是这样的:
$.myPlugin = function () {
// Plugin code
}
正确的编写方式是这样的:
(function ($) {
$.extend({
myPlugin: function () {
// plugin code
}
});
})(jQuery);
乍一看可能有点令人困惑,但这是一种常见的 jQuery 模式。
(function($){
// Code
})(jQuery);
此代码创建一个匿名函数并通过传递 jQuery
作为参数来调用它。在函数内部,此参数绑定(bind)到 $
。这样做的原因是即使 jQuery 在 no-conflict 中运行,它也允许您使用 $
。模式。
第二部分是$.extend
。当使用单个参数调用时,它基本上扩展了 jQuery 对象本身。
调用插件(在快速且正确的情况下)是:
$.myPlugin();
关于javascript - 调用 jQuery 插件而不指定任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758370/