如何将参数传递给jQuery插件

时间:2013-06-16 04:18:20

标签: javascript jquery

我有一个乍一看似乎很愚蠢的问题。我遇到了问题,无论什么时候使用它,都没有真正发生。我有一个自己编写的jQuery插件,就像这样:

(function(){
$.fn.myPlugin = function(options){
var options = $.extend({
firstParameter : null;
}
// the rest of the plugin
})(jQuery)

但是当我从HTML文件中调用它时,如:("#object").myPlugin(2);,它无法工作(注意我已经传递的参数)。但是,如果我跳过这个论点并称之为:("#object").myPlugin();,那一切都有效。有什么问题?

提前致谢

2 个答案:

答案 0 :(得分:28)

你想要这个:

(function($) {
    $.fn.extend({
        myPlugin: function(options) {
            var defaults = {
                something: 23,
                otherThing: 'hello'
            };

            options = $.extend(defaults, options);

            console.log(options.something);
            console.log(options.otherThing);
        }
    });
})(jQuery);

现在这应该覆盖something选项(不要忘记传递对象):

$('#object').myPlugin({something: 17});

答案 1 :(得分:0)

您定义了一个没有参数函数(){}的函数,然后将jQuery传递给它。这可能是问题的原因。

(function(){
  // nothing is the $ here
  $.fn.myPlugin = function(options){
    var options = $.extend({
     firstParameter : null;
    }
  // the rest of the plugin
 })(jQuery)

你应该改为

(function($) {})(jQuery) 

我觉得它会奏效。希望这个帮助