0
<button type="button">Click Me!</button> 

<script>   
    document.getElementsByTagName('button')[0].addEventListener('click', function(e {
        e.preventDefault();
        alert('hello1');
    }, false);
</script>

理解しようとしてe.preventDefault();いますが、このメソッドが呼び出された場合、イベントのデフォルト アクションはトリガーされません。だから私の質問は:

上記のコードでは、e.preventDefault();ここでは何もしていないようです。上記のイベントのデフォルトのアクションは何ですか: getElementsByTagName('button')[0].click?

4

2 に答える 2

2

HTML の要素のデフォルト アクションは、HTML5 仕様で定義されています。インタラクティブ コンテンツ セクションでは、アクティベーション (クリック) イベントがキャンセルされた場合とキャンセルされなかった場合の対処方法など、インタラクションに応答する方法について説明します。また、個々のインタラクティブ要素 (セクションの上部にリストされています) でアクティベーション動作が定義されています。アクティベーション動作は次の<button>とおりです (強調を追加)。

ボタン要素が無効になっていない場合、そのアクティブ化動作要素は、要素の type 属性の現在の状態について、次のリストで定義されている手順を実行します。

送信ボタン

要素にフォーム所有者がいる場合、要素はボタン要素からフォーム所有者を送信する必要があります。

リセットボタン

要素にフォーム所有者がいる場合、要素はフォーム所有者をリセットする必要があります。

ボタン

何もしない。

于 2013-07-03T02:06:39.163 に答える
-3

e.preventDefault() は、イベントがそれ以上上がらないようにします。たとえば、上記のコードで、要素に onclick ハンドラがある場合、 e.preventDefault() を使用しないと、要素の onclick ハンドラが呼び出されます。ボタンの onclick イベントは常に発生します。これは、既に発生した何かを停止することはできませんが、まだ発生していないイベント (この場合は本体の onclick イベント) を停止することはできます。

于 2013-07-03T02:01:20.313 に答える