我有一个网页,它从用户那里获取数值并将它们绘制在网格上。下面是输入一组数字时使用的 jQuery 示例:
$('#c_per,#c_pot').keyup(function() {
$('.ls_ref').each(function() {
if($(this).text().search('C') > 0) {
countDown(this.id);
}
$(this).text($(this).text().replace('C', ''));
});
if($('#c_per').val() > 0 && $('#c_pot').val() > 0) {
setGridPosition('C',$('#c_per').val(),$('#c_pot').val());
}
var c_per = +$('#c_per').val() || 0;
var c_pot = +$('#c_pot').val() || 0;
$('#c_tot').val(c_per + c_pot);
});
c_per 和 c_pot 是用户放置数字的两个输入:文本。每组数字对应的类别只能在网格中出现一次,因此是给定 keyup 事件函数中的第一个函数。接下来检查两个输入是否都有一个值,然后调用 setGridPosition 函数。其余的只是将两个数字的总和相加,并确保当两个输入之一中没有值时函数不会崩溃。
function setGridPosition(cat,per,pot) {
var id = "ls_" + per + "_" + pot;
$('#'+id).append(cat);
var check = per + "-" + pot;
switch(check) {
case '1-1': case '2-1': case '1-2': case '2-2':
counts.q_1 += 1;
switch(check) {
case '1-1':
priority_one_count.s_1_1++; break;
case '2-1':
priority_one_count.s_2_1++; break;
case '1-2':
priority_one_count.s_1_2++; break;
case '2-2':
priority_one_count.s_2_2++; break;
}
break;
case '3-1': case '4-1': case '5-1': case '3-2': case '4-2': case '5-2':
counts.q_2 += 1;
switch(check) {
case '3-1':
priority_two_count.s_3_1++; break;
case '4-1':
priority_two_count.s_4_1++; break;
case '5-1':
priority_two_count.s_5_1++; break;
case '3-2':
priority_two_count.s_3_2++; break;
case '4-2':
priority_two_count.s_4_2++; break;
case '5-2':
priority_two_count.s_5_2++; break;
}
break;
case '3-3': case '4-3': case '3-4':
counts.q_3 += 1;
switch(check) {
case '3-3':
priority_three_count.s_3_3++; break;
case '4-3':
priority_three_count.s_4_3++; break;
case '3-4':
priority_three_count.s_3_4++; break;
}
break;
case '5-3': case '4-4': case '3-5':
counts.q_4 += 1; break;
case '5-4': case '4-5': case '5-5':
counts.q_5 += 1; break;
default: counts.q_6 += 1;
}
}
这个函数的大部分只是跟踪我需要编译的一些统计数据在哪里。不确定通过 switch 语句是否影响 IE8。
我试图让 jsfiddle.net 与这个网站一起工作,但我想不通。我有一个临时站点设置,您可以在其中查看完整版本。-链接已删除-
这段代码每次都可以在 Chrome 和 FireFox 上运行,大约 95% 的时间都可以在 IE8 上运行(需要支持)。通常 9/11 组数字会正确生成网格上的位置。
这段代码中有什么东西是 IE8 遇到的吗?