我有一个问题,乍一看似乎是愚蠢的.我遇到了问题,无论什么时候使用它,都没有真正发生.我有自己编写的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)
小智 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)
我认为这会起作用。希望这有帮助
| 归档时间: |
|
| 查看次数: |
11849 次 |
| 最近记录: |