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

标签 javascript jquery jquery-plugins

假设我有以下 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/

相关文章:

javascript - 使一个元素绕另一个元素运行的 jQuery 插件?

javascript - 可点击的下拉列表图像

javascript - 如何在单击 body 单击时防止 div 上的 onclick 事件?

javascript - javascript命令中的变量

jquery - toggleClass独特的背景

JavaScript Jquery 作业问题只适用于变量的最佳值

javascript - c.easing[this.options.specialEasing && this.options.specialEasing[this.prop] || a] 在使用 JQuery Easing 插件时不是一个函数

javascript - JQuery Supersized 插件不转换

javascript - jquery 递增索引输入数组

php - 从 JSON URL 中提取数据