Javascript 如何将参数传递给jQuery插件
我有一个问题乍一看似乎很愚蠢。我很难弄明白,每当我使用它时,什么都不会发生。我自己在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),它无法工作(
(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});