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 文件之外的默认值,否则它对我没有用。

4

1 回答 1

0

Addy Osmani 有一个很好的模板,它演示了如何设置默认值,然后能够覆盖它们。应该正是你所需要的。这是 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';
于 2012-12-03T01:15:12.723 回答