Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用数组扩展jquery插件的选项_Jquery_Arrays - Fatal编程技术网

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

如何使用数组扩展jquery插件的选项,jquery,arrays,Jquery,Arrays,我正在写一个jQuery插件。有一些默认选项,我可以在HTML上更改它们,但是如果一个选项包含一个数组,我如何更改它呢 以下是插件中的代码: (function($){ $.fn.extend({ aniTag: function(options) { var defaults = { radius: 25, defaultradius: 0,

我正在写一个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);
以下是html的用法:

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

$(文档).ready(函数(){
$('.tags').aniTag({enableTilt:false});
});

如您所见,我可以更改
启用倾斜
选项。我需要做的是更改
color
数组中的值。是的,我知道我需要将该数组放入
默认值
变量中,但我不知道如何操作。

我原以为您可以这样做-

var newcolors = new Array('FFFFFF', '00FFFF', '9F78EC', 'F25C33');
然后通过选项映射将数组传递到插件中-

$('.tags').aniTag({enableTilt: false,colorArray:newcolors});
如果在初始选项中也定义了数组

var defaults = { radius: 25, defaultradius: 0, enableTilt: true, tilt : 20, random : true, randomMax : 25 , colorArray:colors };

然后,extend函数应该用传入的新数组覆盖初始数组。

将颜色数组添加到默认值中,如下所示

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

$('.tags').aniTag({enableTilt: false, colors: ['ffffff', '000000']});

小提琴演示



我想你的意思是想从html属性中获取参数

<a data-param1="test" data-param2="test">test</a>

获取它们。

我按您的方式添加了阵列。但它不会从数组中获取任何值。即使是默认值也是错误的。颜色[0]生成4AC7ED的结果,通过传递一个新数组并使用
.extend()
来更改它。该数组将生成一个ffffff值。这里的Fiddle演示非常感谢您提供关于JSFIDLE的额外信息。这是我第一次使用它:)当你使用数组时,你是指插件中的
选项.colorArray
extend
的文档建议它应该适用于数组-
<a data-param1="test" data-param2="test">test</a>
$('a').data('param1') and $('a').data('param2')