如何使用数组扩展jquery插件的选项

dum*_*dum 2 arrays jquery

我正在写一个jQuery插件.有一些默认选项,我可以在HTML上更改它们,但如果它包含一个数组,如何更改选项?

这是插件中的代码:

(function($){    
    $.fn.extend({  
        aniTag: function(options) {     
            var defaults = {
                radius: 25,
                defaultradius: 0,
                enableTilt: true,
                tilt : 20,
                random : true, 
                randomMax : 25 ,
            };

            var colors = new Array('4AC7ED', 'FDC015', '9F78EC', 'F25C33');         

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

            return this.each(function() {                
                var o = options;
                //some stuff
            });
        }
    });  
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

这是html用法:

<script type="text/javascript">
    $(document).ready(function() {
        $('.tags').aniTag({enableTilt: false});
    });
</script>
Run Code Online (Sandbox Code Playgroud)

如你所见,我可以改变enableTilt选项.我需要做的是更改color数组中的值.是的,我知道我需要将该数组放入defaultsvar中,但我不知道该怎么做.

Jef*_*ert 15

将您的颜色数组添加到默认值中

var defaults = {
    radius: 25,
    defaultradius: 0,
    enableTilt: true,
    tilt : 20,
    random : true, 
    randomMax : 25 ,
    colors: ['4AC7ED', 'FDC015', '9F78EC', 'F25C33']
};
Run Code Online (Sandbox Code Playgroud)

然后你可以用它来覆盖它们

$('.tags').aniTag({enableTilt: false, colors: ['ffffff', '000000']});
Run Code Online (Sandbox Code Playgroud)

小提琴演示:http: //jsfiddle.net/Beufe/1/

var defaults = {
    radius: 25,
    defaultradius: 0,
    enableTilt: true,
    tilt: 20,
    random: true,
    randomMax: 25,
    colors: ['4AC7ED', 'FDC015', '9F78EC', 'F25C33']
};

alert(defaults.colors.length);  // output: 4
alert('Default Value colors[0] = ' + defaults.colors[0]);  // output: 4AC7ED

var options = $.extend(defaults, {
    enableTilt: false,
    colors: ['ffffff', '000000']
});

alert(options.colors.length);  // Output: 2
alert('New Value colors[0] = ' + options.colors[0]);  // output: ffffff
Run Code Online (Sandbox Code Playgroud)