(要注意的是div必须放到js前面才行)
一般情况下,如果给一个dom对象绑定同一个事件,只有最后一个会生效,比如:
document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;
那么将只有method3生效。
如果是Mozilla系列,用addEventListener可以让多个事件按顺序都实现,比如:
var btn1Obj = document.getElementById("btn1");
//element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);
执行顺序为method1->method2->method3
如果是ie系列,用attachEvent可以让多个事件按顺序都实现,比如:
var btn1Obj = document.getElementById("btn1");
//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);
执行顺序为method3->method2->method1
=======================================================
Mozilla中:
addEventListener的使用方式
target.addEventListener(type,listener,useCapture);
target: 文档节点、document、window 或 XMLHttpRequest。
type: 字符串,事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等。
listener :实现了 EventListener 接口或者是 JavaScript 中的函数。
useCapture :是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);
IE中:
target.attachEvent(type, listener);
target: 文档节点、document、window 或 XMLHttpRequest。
type: 字符串,事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。
listener :实现了 EventListener 接口或者是 JavaScript 中的函数。 例如:document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});
W3C 及 IE 同时支持移除指定的事件, 用途是移除设定的事件, 格式分别如下:
removeEventListener(event,function,capture/bubble);
Windows IE的格式如下:
detachEvent(event,function);
DOM2 的进化:
DOM 0 Event
|
DOM 2 Event
|
onblur() |
blur |
onfocus() |
focus |
onchange() |
change |
onmouseover() |
mouseover |
onmouseout() |
mouseout |
onmousemove() |
mousemove |
onmousedown() |
mousedown |
onmouseup() |
mouseup |
onclick() |
click |
ondblclick() |
dblclick |
onkeydown() |
keydown |
onkeyup() |
keyup |
onkeypress() |
keypress |
onsubmit() |
submit |
onload() |
load |
onunload() |
unload |
新しい DOM2 の使用法は、addEventListener() 関数で確認できます。
addEventListener(event, function, capture/bubble);
パラメータのeventは上の表の通り、functionは実行する関数です。 Capture と Bubble はそれぞれ W3C によって策定されています。 簡単に言うと、Capture は文書の先頭から最終行を読み取ってからイベントを実行するのに対し、Bubble は最初に指定された場所を検索してからイベントを実行します。
capture/bubble のパラメータはブール値で、True はキャプチャを使用することを意味し、False はバブルを意味します。これは、attachEvent() の形式です。
window.attachEvent("submit",myFunction());
特別なのは、Windows IE 環境ではバブル モードが使用されるため、attachEvent でキャプチャ/バブル パラメータを指定する必要がないことです。
どのタイプの監視であるかを判断する方法。サポートされていますか?例:
if (typeof window.addEventListener) != “未定義 ") {
window.addEventListener("load",rollover,false);
} else {
window.attachEvent("onload",rollover)
}
上記の typeof window.addEventListener != "unknown" プログラム コードは、ユーザーのブラウザが AddEventListener イベント モデルをサポートしているかどうかを判断できます。サポートしていない場合は、attachEvent を使用します。
W3C と IE は、指定されたイベント モデルの削除もサポートしています。イベントは、設定されたイベントを削除するために使用されます。形式は次のとおりです。
W3C 形式:
removeEventListener(event, function, capture/bubble);
detachEvent(event,function);