将对象传递给JQuery函数作为选项

时间:2014-05-06 08:36:59

标签: jquery function object

不在此处发布整个功能,但基本前提是我尝试使用选项创建插件。我不想重写函数的整个结构,现在我已经谷歌搜索了两个小时而没有任何运气。

这就是现在的样子:

function slider($rotator_container, settings) {

    var settings = {
        auto_rotate : false,
        auto_rotate_speed : 1000,
        transition_support : true //Disable this to use JQuery animations only
    }
};

我正在使用以下内容调用变量:

slider("main-slider", {auto_rotate:true, auto_rotate_speed:5000});

如果我将对象的减速和默认值放在我的函数之外,这是有效的,但问题是我在页面上多次调用它,因此它不需要是全局的。我该怎么做?我需要重写整个函数吗?

1 个答案:

答案 0 :(得分:2)

为了拥有默认选项,您应该使用$ .extend

扩展选项
(function($){
    jQuery.fn.extend({

        // Plugin Name
        slider: function(options) {

            // Defaults options are set here
            // Every default goes within the { } brackets as seen below
            // A comma separates the different values
            var defaults = {  
                auto_rotate : false,
                            auto_rotate_speed : 1000,
                             transition_support : true

            };  
            var options = $.extend(defaults, options); 

return this.each(function() {   


});
}

    });
})(jQuery);  

然后你可以打电话给

$("div").slider(auto_rotate : true});

在您的情况下,您可以按如下方式扩展对象

function slider($rotator_container, settings) {

    var defaultsettings = {
        auto_rotate : false,
        auto_rotate_speed : 1000,
        transition_support : true //Disable this to use JQuery animations only
    };
  $.extend( defaultsettings, settings );
)