如何在contenteditable divs中使用preventDefault?

时间:2013-04-30 01:56:10

标签: javascript jquery html contenteditable preventdefault

This is an example on CodePen.

以下是代码:

HTML:

<div contenteditable="true" id="mydiv"></div>

jQuery的:

$(function () {
  $("#mydiv").keydown(function (evt) {
    if (evt.which == 13) {
      evt.preventDefault();
      alert('event fired');  
    }
  });
});

为什么evt.preventDefault()方法不起作用?

1 个答案:

答案 0 :(得分:-2)

preventDefault调用只会使默认事件处理程序无法运行。如果您想在evt.preventDefault()之后跳过任何代码,请在其后加return false

$(function () {
    $("#mydiv").keydown(function (evt) {
        if (evt.which == 13) {
            return false; // <-- now event doesn't bubble up and alert doesn't run
            alert('event fired');  
        }
    });
});

此外,正如斜视所述,您可以使用stopPropagationpreventDefault来达到同样的效果。