2012-12-03 33 views
0

我一直在試圖將我的carosel函數轉換爲插件,我的問題是我想能夠覆蓋默認參數,所以我可以從另一個javascript文件更改變量。覆蓋我的插件中的默認參數?

(function($){ 
$.rjm_carosel = (function(rjm){ 

    var sums = $(window).width()/2; 
    var animating = false; 
    var step = 0; 
    var nextStep = 0; 
    var prevStep = 0; 
    var defaults = { 
        mainContainer: ".container", 
        delay: 15000, 
        slideDuration: 1000, 
        slideEasing: "easeOutQuart", 
        };  


    rjm.reclass_thumb_blocks = function(){ 

    }; 

    rjm.slideNext = function(){ 

    }; 

    rjm.slideBack = function(){ 

    }; 

    rjm.bindBtn = function(){ 

    }; 

    rjm.unbindBtn = function(){ 

    }; 
    return rjm; 

})({}); 

})(jQuery); 

這是我做的,以觸發另一個js文件的功能,這工作:

 $.rjm_carosel.unbindBtn(); 
     $.rjm_carosel.bindBtn(); 
     $.rjm_carosel.reclass_thumb_blocks(); 

我怎麼能覆蓋說mainContainer上默認的變量是「.newWrapper」而不是」 .container 「?

我想能夠覆蓋插件js文件之外的默認值,否則它對我沒有用處。

回答

0

Addy Osmani有一個很好的模板,演示如何設置默認值,然後能夠覆蓋它們。應該正是你需要的。這裏Here is a link to it on Github.

廣告是TL;博士:從本質上說,你建立了一個VAR延長默認值:

options = $.extend({}, $.fn.pluginName.options, options); 

    return this.each(function() { 

     var elem = $(this); 

    }); 
}; 

,並在案件沒有那麼實際上你可以設置默認值與傳遞:

$.fn.pluginName.options = { 

    key: "value", 
    myMethod: function (elem, param) { 

    } 
}; 

覆蓋您可以使用:

$.fn.pluginName.key ='otherval';