4

这是 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()方法不起作用?

4

1 回答 1

-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');  
        }
    });
});

此外,正如 squint 所提到的,您可以使用stopPropagationandpreventDefault来实现相同的效果。

于 2013-04-30T01:58:23.200 回答