ユーザーから数値を取得してグリッドにプロットする Web ページがあります。数値のセットを入力するときに使用される 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 は、ユーザーが数字を配置する 2 つの input:text です。数字の各セットに対応するカテゴリは、グリッドに 1 回しか表示されないため、指定された keyup イベント関数内の最初の関数になります。次は、両方の入力に値があることを確認してから、setGridPosition 関数を呼び出します。残りは 2 つの数値の合計を加算するだけで、2 つの入力のいずれかに値がない場合に関数がクラッシュしないようにします。
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 では常に機能し、IE8 では約 95% の確率で機能します (サポートが必要)。通常、9/11 セットの数字はグリッド上の位置を正しく生成します。
このコードに IE8 で問題があるものはありますか?