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