对每种情况使用一个事件(JavaScript 开关)

use an event for each case (javascript switch)

本文关键字:一个 事件 JavaScript 开关 情况      更新时间:2023-09-26

是否可以指定一次e.preventDefault(),这将与下面的代码相同。

的意思是,如果可能的话,我不想每次都写e.preventDefault()......

document.addEventListener("keydown", function(e) {
  if (e.ctrlKey) { // Ctrl+
    switch (e.keyCode) {
      case 79: // O
        e.preventDefault();
        openDoc();
        break;
      case 83: // S
        e.preventDefault();
        saveDoc();
        break;
      case 66: // B
        e.preventDefault();
        showHideStatusBar(showStatusBar ? false : true);
        break;
      case 191: // /
        e.preventDefault();
        Help();
        break;
    }
  }
});

你可以尝试这样的事情:

if (e.ctrlKey) { // Ctrl+
    if (/^(79|83|66|191)$/.test(e.keyCode){
     e.preventDefault();
    }
    switch (e.keyCode) { /*... */ }
}

只需将e.preventDefault()放在switch之前