トップ 一覧 検索 ヘルプ RSS ログイン

Matrix 行列固定テーブルの実装の変更点

+
+ sub keyDown{
+    my $s = shift;
+	my $text = <<'EndScript';
+ var cursMode = true;
+ function matrix_keyDown(e){
+    let id = e.srcElement.id;
+    let res = id.match(/(_i_)(\d+)_(\d+)/);
+    let y = 0;
+    let x = 0;
+    if(res[1] === '_i_'){
+      y = Number(res[2]);
+      x = Number(res[3]);
+    }
+    document.getElementById('item1').innerText = id + " " + e.keyCode;
+    if (cursMode && e.keyCode == 39) {
+       x += 1;
+    }else if (cursMode && e.keyCode == 37) {
+       x -= 1; 
+    }else if (e.keyCode == 40) {
+       y += 1;
+       cursMode = true;
+    }else if (e.keyCode == 38) {
+       y -= 1;
+       cursMode = true;
+    }else if (e.keyCode == 13) {  // Enter
+       x = 1;
+       y += 1;
+       cursMode = true;
+    }else if (e.keyCode == 36) {   // Home
+       y = 2;
+       cursMode = true;
+    }else if (e.keyCode == 35) {   // End
+       y = 99;
+       cursMode = true;
+    }else if (e.keyCode == 9) {   // Tab
+       cursMode = true;
+    }else{
+       cursMode = false;
+    }
+    if(res[1] === '_i_' && y > 1 && x > 0 && cursMode){
+       id = res[1] + y + "_" + x;
+       document.getElementById(id).focus();
+       document.getElementById(id).scrollIntoView({block: 'center',inline: 'center'});
+    }
+ }
+ EndScript
+	return $text;
+ }