如何将参数传递给jQuery插件

5 javascript jquery

我有一个问题,乍一看似乎是愚蠢的.我遇到了问题,无论什么时候使用它,都没有真正发生.我有自己编写的jQuery插件,如下所示:

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

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

提前致谢

eep*_*epp 29

你要这个:

(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);
Run Code Online (Sandbox Code Playgroud)

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

$('#object').myPlugin({something: 17});
Run Code Online (Sandbox Code Playgroud)

  • 接受我的回答比在评论中感谢我更好。 (2认同)

小智 0

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

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

你应该更改为

(function($) {})(jQuery) 
Run Code Online (Sandbox Code Playgroud)

我认为这会起作用。希望这有帮助