我有一个乍一看似乎很愚蠢的问题。我遇到了问题,无论什么时候使用它,都没有真正发生。我有一个自己编写的jQuery插件,就像这样:
(function(){
$.fn.myPlugin = function(options){
var options = $.extend({
firstParameter : null;
}
// the rest of the plugin
})(jQuery)
但是当我从HTML文件中调用它时,如:("#object").myPlugin(2);
,它无法工作(注意我已经传递的参数)。但是,如果我跳过这个论点并称之为:("#object").myPlugin();
,那一切都有效。有什么问题?
提前致谢
答案 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)
我觉得它会奏效。希望这个帮助