如何创建一个不绑定元素的简单jQuery插件?

Tom*_*mas 4 jquery plugins

出于某种原因,我只能找到与$(selector).myPlugin();

我想要做的就是简单地用选项调用new myPlugin().

new myPlugin({
    'option1': 'option 1 value',
    'option2': 'option 2 value',
    'option3': 'option 3 value',
    'option4': 'option 4 value'
});
Run Code Online (Sandbox Code Playgroud)

我有一个常规函数,最多有8个参数,但我并不总是需要全部定义它们,我讨厌必须包含我不需要定义的所有参数的默认值.

function myFunction(param1, param2, param3, param4, param5, param6, param7, param8){
    // Operations here
}
Run Code Online (Sandbox Code Playgroud)

有时候我只需要定义第一个和第五个参数或者其他什么,我需要其余的默认值.这是一种痛苦.

也许我在搜索中错过了这样的例子.

Ja͢*_*͢ck 5

您可以使用$命名空间声明您的新函数并使用它$.extend()来处理您的默认值:

(function($) {
    var defaults = {
       name: 'Jack',
       number: '555-jack'
    }

    $.myPlugin = function(options) {
        var settings = $.extend({}, defaults, options);

        this.someFunction = function() {
            // you can use settings here
        }
    }
}(jQuery));
Run Code Online (Sandbox Code Playgroud)

我将默认值定义为私有变量(外部代码无法访问它)并在myPlugin构造函数中使用它.呼叫如何工作的示例:

var x = new $.myPlugin({
    number: '666-something'
});
Run Code Online (Sandbox Code Playgroud)

在构造函数内部,settings变量包含名称from defaults和构造函数参数中的数字.