JavaScriptイベントバインドパッケージの互換性イベントバインディング方法
2098 ワード
、
1、element.on*** = function(event){} this
, HTML ,
2、obj.addEventListener(type,fn,false) IE9 w3c this
type:
fn:
false
, :
html :
js代码:
var div = document.getElementsByTagName("div");
div.addEventListener('click',function(){
console.log("a");
},false)
div.addEventListener('click',function(){
console.log("b");
},false)
a b, , ,
:
var div = document.getElementByTagName("div"); div.addEventListener('click',test,false); div.addEventListener('click',test,false); function test(){ console.log("a"); } a, 。
3、obj.attachEvent('on' + type,fn) IE obj.addEventListener(type,fn,false) this window
: ,
this window :
var div = document.getElementByTagName("div");
div.attachEvent('onclick',function () {
console.log(this);//--->window
})
this
var div = document.getElementByTagName("div");
div.attachEvent('onclick',function () {
test.call (div) ;
})
function () {
console.log(this);//---->div
}
4、 addEvent(element,type,handle);
dom
jsコード:function addEvent(element,type,handle) {
if(element.addEventListener){
element.addEventListener(type,handle,false);
}else if(element.attachEvent){
element.attachEvent('on'+type,function () {
handle.call(element);
})
}else {
element['on'+type] = handle;
}
}