在没有先设置

时间:2016-10-06 15:11:13

标签: javascript jquery function parameters jquery-plugins

我正在开发一个jQuery插件,我想知道是否有可能在没有设置第一个参数的情况下获取第二个参数。

MCVE:

https://jsfiddle.net/2fgb5agL/

//jQuery
$.fn.myPlugin = function(param1,param2) {
    return this.each( function() {
        if (param2) {
            alert("param2 ok");
        }
    });
};

//Call the plugin
$("#call").click(function() {
    $(this).myPlugin("", "xyz");
});

我的意思是:可以调用$(element).myPlugin("xyz")并期望插件识别已定义的字符串(例如" xyz")然后执行某些操作&#39 39; (调用其他功能)。

所以,我不需要拨打$(element).myPlugin(undefined,"xyz")来获取第二个参数而不设置第一个参数。

感谢阅读。

p.s。:我想要实现的是更清晰的代码。

1 个答案:

答案 0 :(得分:1)

除非参数类型严格不同,否则您甚至无法在函数内部创建区别。

通常使用单个对象参数作为参数,如下所示:

//jQuery
$.fn.myPlugin = function(options) {
    return this.each( function() {
        if (options.param2) {
            alert("param2 ok");
        }
    });
};

$("#call").click(function() {
    $(this).myPlugin({ param1: "", param2: "xyz" });
});

这样你可以选择为你的插件传递哪个参数。例如:$(this).myPlugin({ param2: "xyz" });