JavaScript イベント、イベント バブリング、イベント キャプチャ、デフォルト イベントのブロックについて話す これら 3 つのトピックは、面接でも日常業務でも避けるのが困難です。
バブリングの章 まずは例を見てみましょう: js:var $input = document.getElementsByTagName("input")[0]; var $p = document.getElementsByTagName("p")[0]; var $body = document.getElementsByTagName("body")[0]; $input.onclick = function(e){ this.style.border = "5px solid red" var e = e || window.e; alert("red") } $p.onclick = function(e){ this.style.border = "5px solid green" alert("green") } $body.onclick = function(e){ this.style.border = "5px solid yellow" alert("yellow") }
<p> <input type="button" value="测试事件冒泡" /> </p>
$input.onclick = function(e){ this.style.border = "5px solid red" var e = e || window.e; alert("red") e.stopPropagation(); }
$input.addEventListener("click", function(){ this.style.border = "5px solid red"; alert("red") }, true) $p.addEventListener("click", function(){ this.style.border = "5px solid green"; alert("green") }, true) $body.addEventListener("click", function(){ this.style.border = "5px solid yellow"; alert("yellow") }, true)
HTML 要素 のデフォルトの動作があります。たとえば、フォーム フォームの送信タイプ入力には、デフォルトの送信タイプ入力のジャンプ アクションがあります。フォームのリセット動作があります。
これらのブラウザーのデフォルトの動作を防止したい場合は、JavaScript がその方法を提供します。 コードから始めましょうvar $a = document.getElementsByTagName("a")[0]; $a.onclick = function(e){ alert("跳转动作被我阻止了") e.preventDefault(); //return false;//也可以 } <a href="http://www.nipic.com">昵图网</a>
HTML イベント 属性 および DOM0 レベル イベント処理 メソッド内でのみ、return false を返すことでイベント ホストのデフォルトの動作を整理できます。
注: 上記はすべてW3C 標準に基づいており、IE のさまざまな実装は考慮されていません。
以上がJavaScript イベントのバブリング、イベントのキャプチャ、およびブロックのデフォルト イベント コードの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。