调用jQuery插件而不指定任何元素

And*_*ech 26 javascript jquery jquery-plugins

说我有以下jQuery插件:

$.fn.myPlugin = function () {
    //plugin code
}
Run Code Online (Sandbox Code Playgroud)

通常,您在一定数量的元素上调用插件,如:

$("body").myPlugin();
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有指定元素的情况下调用我的插件?

我试过这样称呼它:$.myPlugin();但是这不起作用.

有效的是:$().myPlugin();但这是调用它的正确方法吗?

Emi*_*nov 51

编写它的快速方法是:

$.myPlugin = function () {
    // Plugin code
}
Run Code Online (Sandbox Code Playgroud)

写它的正确方法是这样的:

(function ($) {
    $.extend({
        myPlugin: function () {
            // plugin code
        }
    });
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

起初看起来有点令人困惑,但它是一种常见的jQuery模式.

(function($){
     // Code
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

此代码创建一个匿名函数,并将其jQuery作为参数传递.在函数内部,这个参数是绑定的$.这样做的原因是它允许你使用$即使jQuery在无冲突模式下运行.

第二部分是$.extend.当使用单个参数调用时,它基本上扩展了jQuery对象本身.

调用插件(在快速和正确的情况下)是:

$.myPlugin();
Run Code Online (Sandbox Code Playgroud)