为每个案例使用一个事件(javascript开关)

时间:2013-11-04 08:31:10

标签: javascript

是否可以指定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;
    }
  }
});

2 个答案:

答案 0 :(得分:1)

您可以尝试以下方式:

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

答案 1 :(得分:0)

只需将e.preventDefault()放在switch

之前