javascript防止keyup的默认值

时间:2013-04-17 05:55:16

标签: javascript jquery

我有以下代码:

$(document).on('keyup', 'p[contenteditable="true"]', function(e) {
    if(e.which == 13) {
        e.preventDefault();
        $(this).after('<p contenteditable = "true"></p>');
        $(this).next('p').focus();
    } else if((e.which == 8 || e.which == 46) && $(this).text() == "") {
        e.preventDefault();
        alert("Should remove element.");
        $(this).remove();
        $(this).previous('p').focus();
    };
});

我想在按下某个键时阻止默认操作。 preventDefault适用于keypress,但不适用于keyup。有没有办法阻止$(document).on('keyup')的默认?

2 个答案:

答案 0 :(得分:31)

没有。默认操作后会keyup触发。

keydownkeypress是您可以阻止默认的地方 如果没有停止,则默认发生并触发keyup

答案 1 :(得分:2)

我们可以使用以下代码段来阻止此操作。

e.stopPropagation();
      e.preventDefault();  
      e.returnValue = false;
      e.cancelBubble = true;
      return false;
keydown / keypress之后

keyup触发。我们可以阻止任何事件中的默认操作。

谢谢,

希瓦