1
如何让此插件代码接受默认选项?jQuery插件;无法使用默认设置
// Utility
if (typeof Object.create !== 'function') {
object.create = function(obj) {
function F(){};
F.prototype = obj;
return new F();
};
}
(function($, window, document, undefined) {
var Super = {
init: function(options, elem) {
var self = this;
self.elem = elem;
self.$elem = $(elem);
//self.alertbox(options.alertmsg);
self.loadingBar(options.duration);
if (typeof options === 'string') {
self.search = options;
} else {
// object was passed
self.search = options.search;
}
self.options = $.extend({}, $.fn.superHero.options, options);
},
alertbox: function(message) {
var self = this;
alert(message);
},
loadingBar: function(duration) {
var self = this;
$('#loadingBar').animate({
width: 699
}, duration);
},
};
$.fn.superHero = function(options){
return this.each(function() {
var hero = Object.create(Super);
hero.init(options, this);
$.data(this, 'superHero', hero);
});
};
$.fn.superHero.options = {
alertmsg: 'Hello World!',
duration: 8000,
};
})(jQuery, window, document);
这些选项只在调用插件时在索引页中定义它们时才起作用。
我该怎么做才能让选项有一个默认值被用户覆盖而不是被用户需要?
原来我需要打电话; self.loadingBar(self.options.duration); 而不是 self.loadingBar(options.duration); 不知道有什么区别;我所知道的是它的作品。 –