我一直在尝试将我的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();
如何覆盖say mainContainer默认变量为'.newWrapper'而不是'.container'?
我希望能够覆盖插件js文件之外的默认值,否则对我没用。
答案 0 :(得分:0)
Addy Osmani有一个很好的模板,演示了如何设置默认值,然后能够覆盖它们。应该是你需要的。 Here is a link to it on Github.
这里的广告是tl; dr:实际上你设置了一个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';