私はしばらくこれを探していましたが、説明がありませんでした。
「onclick」およびその他の javascript のイベントの場合、falseを返すイベント ハンドラーは「デフォルト アクションを防止する」ことを意味します。ただし、「onmouseover」には例外が 1 つあります。「onmouseover」の場合、trueを返すことは「デフォルト アクションを防止する」ことを意味します。
「onmouseover」の奇妙な例外的なケースがあるのはなぜですか?
私はしばらくこれを探していましたが、説明がありませんでした。
「onclick」およびその他の javascript のイベントの場合、falseを返すイベント ハンドラーは「デフォルト アクションを防止する」ことを意味します。ただし、「onmouseover」には例外が 1 つあります。「onmouseover」の場合、trueを返すことは「デフォルト アクションを防止する」ことを意味します。
「onmouseover」の奇妙な例外的なケースがあるのはなぜですか?
デフォルトのイベント動作を防ぐために return false / trueを使用する代わりに、イベント オブジェクトでデフォルトのメソッド / 属性を使用します。
elem.onmouseover = function(e) {
if (!e) var e = window.event; // IE
if(e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false; // IE
}
}
私の知る限りtrue
、リンクの URL がステータス バーに表示されないようにするために戻るのは、IE 固有の (誤った) 機能です。そして、なぜ IE がそのように動作するのかを理解しようとすることは、多くの場合、失われた原因です。
本当の理由は誰にもわかりません。まさにその通りです: onmouseover から TRUE を返して、URL がステータス バーに表示されないようにします。これは実際にはデフォルトの動作です。