【问题标题】:Override my default parameters in my plugin?在我的插件中覆盖我的默认参数?
【发布时间】:2012-12-03 01:05:44
【问题描述】:

我一直在尝试将我的 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 文件之外的默认值,否则对我没有用处。

【问题讨论】:

    标签: jquery jquery-plugins plugins


    【解决方案1】:

    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';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多