为什么浏览器会卡在这个javascript循环中?
我看不出为什么浏览器挂起并在这个函数的第一个for循环中被捕获,arguments.length也不打印console.log 下面是传递colorpicker自己id的click函数,然后是要更改的其他属性变量:为什么浏览器会卡在这个javascript循环中?,javascript,jquery,Javascript,Jquery,我看不出为什么浏览器挂起并在这个函数的第一个for循环中被捕获,arguments.length也不打印console.log 下面是传递colorpicker自己id的click函数,然后是要更改的其他属性变量: $('#colorSelector3').click(function(){ colorPickDynamic('#colorSelector3','h1','color'); }); 以下是浏览器挂起在第一个for循环中的函数: function colorPickDynamic
$('#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);
}
});
}
函数colorPickDynamic(cp){
var i,
J
x,,
标记=[],
colorProperty=[];
对于(x=0,i=1,j=2;x您确定它挂起(例如无限循环)?而不仅仅是简单的崩溃
因为您正在访问参数[i]
,其中参数从1开始,每次迭代递增2。如果参数包含零或一个元素,它将在第一次迭代时崩溃,尝试在任何日志记录完成之前访问参数[1]
您是否打算访问参数[x]
?是否确定它挂起(例如无限循环)?而不仅仅是普通崩溃
因为您正在访问参数[i]
,其中参数从1开始,每次迭代递增2。如果参数包含零或一个元素,它将在第一次迭代时崩溃,尝试在任何日志记录完成之前访问参数[1]
您是否打算访问参数[x]
?在jsfiddle.net plz上显示演示在“循环”消失之前,您可以从中删除多少代码?您可能希望在脚本调试器的第一个循环“体”中放置一个断点,以便您可以看到“内部发生了什么”…在jsfiddle.net plz上显示演示在“循环”消失之前,您可以从中删除多少代码?您可能希望在脚本调试器的第一个循环“正文”中放置一个断点,以便您可以看到“内部发生了什么”…是的,即使更改了(colorProperty[x]的console.log);上升到200000以上,然后chrome崩溃?@Joe:调用您的colorPickDynamic
的情况如何?参数的值是多少。长度?很抱歉,在deestans检查后,我看到它使用了旧的缓存.js文件,我希望循环已解决!是的,即使更改了(colorProperty[x]的console.log);上升到200000以上,然后chrome崩溃?@Joe:你的colorPickDynamic
调用得怎么样了?参数的值是多少。长度?很抱歉,在deestans检查后,我看到它使用了旧的缓存.js文件,我希望循环解决了!