我有以下代码:
$(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')
的默认?
答案 0 :(得分:31)
没有。默认操作后会keyup
触发。
keydown
和keypress
是您可以阻止默认的地方
如果没有停止,则默认发生并触发keyup
。
答案 1 :(得分:2)
我们可以使用以下代码段来阻止此操作。
e.stopPropagation();
e.preventDefault();
e.returnValue = false;
e.cancelBubble = true;
return false;
keydown / keypress之后keyup触发。我们可以阻止任何事件中的默认操作。
谢谢,
希瓦