16

我有以下代码:

$(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。有没有办法防止defualt for $(document).on('keyup')

4

2 回答 2

46

No.keyup在默认操作后触发。

keydown并且keypress是您可以防止默认值的地方。
如果这些没有停止,则默认发生并被keyup触发。

于 2013-04-17T05:58:03.763 回答
8

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

e.stopPropagation();
      e.preventDefault();  
      e.returnValue = false;
      e.cancelBubble = true;
      return false;

keyup 在 keydown/keypress 之后触发。我们可以防止任何这些事件中的默认操作。

谢谢,

湿婆

于 2013-04-17T06:22:27.840 回答