我无法发现浏览器挂起的原因并且在此函数的第一个for循环中被捕获,arguments.length也不打印console.log。
这是点击函数传递colorpicker自己的id然后变量其他属性要更改:
$('#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);
}
});
}
任何帮助都会令人惊叹!感谢
答案 0 :(得分:3)
你确定它会挂起(例如无限循环)吗?而不只是简单的崩溃?
因为您正在访问arguments[i]
,其中参数从1开始,每次迭代增加2。如果参数包含零个或一个元素,它将在第一次迭代时崩溃,尝试在任何日志记录完成之前访问arguments[1]
。
您打算访问arguments[x]
吗?