我不知道为什么浏览器会挂起并在此函数的第一个 for 循环中被捕获,arguments.length 也不打印 console.log。
这是传递颜色选择器自己的 id 的 click 函数,然后是要更改的变量其他属性:
$('#colorSelector3').click(function(){
colorPickDynamic('#colorSelector3','h1','color');
});
这是浏览器在第一个 for 循环中挂起的函数:
function colorPickDynamic(cp){
var i,
j,
x,
tag = [],
colorProperty = [];
for (x=0, i = 1, j = 2; x <= arguments.length; i+=2, j+=2, x++) {
tag[x]=arguments[i];
colorProperty[x]=arguments[j];
console.log(arguments.length);
console.log(colorProperty[x]);
}
$(cp).ColorPicker({
color: '#0000ff',
onShow: function (colpkr) {
$(colpkr).fadeIn(500);
return false;
},
onHide: function (colpkr) {
$(colpkr).fadeOut(500);
return false;
},
onChange: function (hsb, hex, rgb) {
for (j = 2; j < arguments.length; j+=1) {
$(tag[0]).css(colorProperty[0], '#' + hex);
}
$(cp + ' div').css('backgroundColor', '#' + hex);
}
});
}
任何帮助都会很棒!谢谢