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()に a を置きます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て同じ効果を得ることができます。

于 2013-04-30T01:58:23.200 に答える