JavaScriptの事件について簡単に話します.
2220 ワード
1、イベントフロー
イベントフローは、ページからイベントを受信する順序を記述する.しかし、IEは発泡流を提案し、Netscape Communicatorはトラップストリームを提案した.JavaScript事件フロー
2、事件の泡が発生する.
イベントは、最も具体的な要素(ネストされた階層の最も深いノード)によって受信され、段階的に特定のノード(ドキュメント)と比較して上に伝播される.以下のとおりです
注意: 近代的なすべてのブラウザはすべて泡事件を支持して、しかし実現していくつか違いがあります.IE 5.5およびもっと早いバージョンの中の事件は泡を噴き出して直接にbodyからdocumentまで跳ぶことができます(実行しません).Firefox、Chrome、Safariは事件をずっとwindowの対象に浸します.
3、イベントの泡が発生し、デフォルトのイベントをキャンセルする
a.イベントオブジェクトの取得
イベントフローは、ページからイベントを受信する順序を記述する.しかし、IEは発泡流を提案し、Netscape Communicatorはトラップストリームを提案した.JavaScript事件フロー
2、事件の泡が発生する.
イベントは、最も具体的な要素(ネストされた階層の最も深いノード)によって受信され、段階的に特定のノード(ドキュメント)と比較して上に伝播される.以下のとおりです
window.onload = function(){
var obj = document.getElementById("test");
obj.onclick = function(){
alert(this.tagName);
};
document.body.onclick = function(){
alert(this.tagName);
};
document.documentElement.onclick = function(){
alert(this.tagName);
};
document.onclick = function(){
alert("document");
};
window.onclick = function(){
alert("window");
}
};
事件の伝播順:div->body->>document注意: 近代的なすべてのブラウザはすべて泡事件を支持して、しかし実現していくつか違いがあります.IE 5.5およびもっと早いバージョンの中の事件は泡を噴き出して直接にbodyからdocumentまで跳ぶことができます(実行しません).Firefox、Chrome、Safariは事件をずっとwindowの対象に浸します.
3、イベントの泡が発生し、デフォルトのイベントをキャンセルする
a.イベントオブジェクトの取得
function getEvent(event) {
// window.event IE
// event IE
return event || window.event;
}
b機能:イベントの発泡を停止する
function stopBubble(e) {
// , IE
if ( e && e.stopPropagation ) {
// W3C stopPropagation()
e.stopPropagation();
} else {
// , IE
window.event.cancelBubble = true;
}
}
c.ブラウザのデフォルトの行動をブロックする
function stopDefault( e ) {
// (W3C)
if ( e && e.preventDefault ) {
e.preventDefault();
} else {
// IE
window.event.returnValue = false;
}
return false;
}