Javascript 如何将参数传递给jQuery插件

Javascript 如何将参数传递给jQuery插件,javascript,jquery,Javascript,Jquery,我有一个问题乍一看似乎很愚蠢。我很难弄明白,每当我使用它时,什么都不会发生。我自己在jQuery中编写了一个插件,如下所示: (function(){ $.fn.myPlugin = function(options){ var options = $.extend({ firstParameter : null; } // the rest of the plugin })(jQuery) 但是当我从HTML文件调用它时,就像这样:(“#object”).myPlugin(2),它无法工作(

我有一个问题乍一看似乎很愚蠢。我很难弄明白,每当我使用它时,什么都不会发生。我自己在jQuery中编写了一个插件,如下所示:

(function(){
$.fn.myPlugin = function(options){
var options = $.extend({
firstParameter : null;
}
// the rest of the plugin
})(jQuery)
但是当我从HTML文件调用它时,就像这样:
(“#object”).myPlugin(2),它无法工作(请注意我传递的参数)。但是如果我跳过这个参数并这样调用它:
(“#object”).myPlugin(),一切正常。有什么问题


提前感谢

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

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

(function($) {})(jQuery) 
我认为它会起作用。希望有此帮助

您需要此帮助:

(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
选项(不要忘记传递对象):


嗯,
options
是一个对象,你没有扩展任何东西。。。再次仔细检查手册,您遗漏了一些内容。您覆盖了第一行的
选项
。接受我的答案比在评论中感谢我要好。哎呀!当我的声誉超过15%时,这是可能的。在第二次设置
选项时,省略
var
不是最好的做法吗<代码>选项=$.extend(默认值,选项)
$('#object').myPlugin({something: 17});