イベントの急増を防ぐ

巴扎黑
巴扎黑オリジナル
2016-11-25 13:33:52981ブラウズ

JavaScript はバブリングを停止し、ブラウザのデフォルト動作をブロックします

イベント互換

Js コード

function myfn(e){

var evt = e ? e:window.event

}


js stop Bubble

Js コード

function myfn(e){

window.event? window.event.cancelBubble = true : e.stopPropagation();

Js コード cFunction Myfn (E) {


Window.event? Window.event.returnValue = false: e.preventDefault () ); IE は e.cancelBubble = true を使用します。

stopPropagation もイベント オブジェクト (Event) のメソッドであり、その機能はターゲット要素のバブリング イベントを防止することですが、デフォルトの動作は防止されません。

js はデフォルトの動作を防止します:

w3c のメソッドは e.preventDefault()、IE は e.returnValue = false を使用します。

preventDefault はイベント オブジェクト (Event) のメソッドであり、その機能はターゲットのデフォルトをキャンセルすることです。要素の動作。

デフォルトの動作について話しているので、要素自体がデフォルトの動作を持っていない場合、当然、その要素はキャンセルする前にデフォルトの動作を持っている必要があります。

どの要素にデフォルトの動作がありますか?リンク 、送信ボタン など。

イベント オブジェクトの cancelable が false の場合、デフォルトの動作がないことを意味します。デフォルトの動作があっても、preventDefault の呼び出しは機能しません。


return false:
javascript の return false はデフォルトの動作を防止するだけですが、jQuery を使用するとデフォルトの動作を防止し、オブジェクトのバブリングも防止します。

使用法の概要:
バブリング動作を停止する必要がある場合は、


Jsコードを使用できます

function stopBubble(e) {

//イベントオブジェクトが提供されている場合、これは非IEブラウザです

if (e && e.stopPropagation)

//W3C の stopPropagation() メソッドをサポートします

e.stopPropagation();

else

//それ以外の場合は、IE を使用してイベントバブリングをキャンセルする必要があります

window.event.cancelBubble = true;

}

デフォルトの動作を防ぐ必要がある場合は、次を使用できます:

Js コード

//ブラウザのデフォルトの動作をブロックします

function stopDefault(ee){

//デフォルトのブラウザーアクションを防ぐ (W3C)

if (e && e.preventDefault)

e.preventDefault();

//IE の関数のデフォルトアクションを防ぐ方法

else

ウィンドウ。イベント .returnValue = false;

return false

}

イベントのメモ:

event は、イベント オブジェクトをトリガーした要素、マウスの位置とステータス、キーが押されたなど。

イベントオブジェクトはイベント中にのみ有効です。

Firefox のイベントは IE のイベントとは異なります。IE のイベントはグローバル変数でいつでも使用できます。

Firefox のイベントはパラメーターによってガイドされる場合にのみ使用でき、実行時の一時変数です。

IE/Opera では window.event、Firefox ではevent です。

イベントのオブジェクトは IE では window.event.srcElement であり、

Firefox ではevent.target であり、どちらも Opera で使用できます。

次の 2 つの文は同じ効果があります:



Js code

//code from http://caibaojian.com/javascript-stoppropagation-preventdefault.html

function a(e){

var e = (e) ? e : ((window.event) ? window.event : null);

var e = e || window.event は Firefox では null、event は IE では null です。