大家都知道,ie中的現代事件繫結(attachevent)與w3c標準的(addeventlistener)相比存在很多問題,
例如:記憶體洩漏,重複新增事件並觸發的時候是倒敘執行等。
下面是用傳統事件的方法來處理封裝事件的繫結:
新增事件繫結事件:
addevent.id = 1; //事件計數器
function
addevent(obj, type, fn)
else
obj.events ={};
}var flag = false
;
//儲存事件物件
if( !obj.events[type])
else
}//判斷該事件是否重複,重複的話就不進行事件的函式的儲存,否則儲存該事件並執行
if( !flag )
}//事件函式 型別陣列 函式遍歷呼叫
obj["on"+type] = function
();
//在事件物件後面新增函式,乙個尾巴函式,停止冒泡。
event.stoppropagation = function
();
//迴圈遍歷執行型別儲存的多個函式
var evfn =obj.events[type];
for(var i in
evfn)}}
}
移除事件繫結:
functionremoveevent(obj, type, fn)
else}}
}
JS事件流,事件繫結
事件流,事件繫結 主流browser,符合w3c標準,支援冒泡和捕獲 低版本ie,僅支援冒泡 冒泡到window document 事件繫結 解綁 elem.addeventlistener evt,func,usecapture elem.removeeventlistener evt,func ...
js事件繫結
事件繫結,常見的是odiv.nclick function 這種方式繫結事件太單一,如果繫結多個,那麼最後乙個事件會覆蓋掉之前的,也就是說只執行最後一次繫結的事件,這裡要說的是addeventlistener方法,和ie下的attachevent方法 html 如下 box son1 son2 介面...
js 事件繫結
事件繫結的方式 1.dom 元素行內繫結 div onclick alert 1 div 2.js on eventtype document.onclick function 3.addeventlistener document.getelementbyid mybtn addeventlist...