2012-05-21 37 views
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); 

這些選項只在調用插件時在索引頁中定義它們時才起作用。

我該怎麼做才能讓選項有一個默認值被用戶覆蓋而不是被用戶需要?

+0

原來我需要打電話; self.loadingBar(self.options.duration); 而不是 self.loadingBar(options.duration); 不知道有什麼區別;我所知道的是它的作品。 –

回答

0

原來我需要打電話;

self.loadingBar(self.options.duration); 

,而不是

self.loadingBar(options.duration); 

不知道有什麼區別;我所知道的是它的作品。

相關問題