ホームページ  >  記事  >  ウェブフロントエンド  >  addEventListener_javascriptスキルの使用例

addEventListener_javascriptスキルの使用例

WBOY
WBOYオリジナル
2016-05-16 16:49:391290ブラウズ

(要注意的是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);
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。