一、html事件和dom0事件 没有兼容性问题,非IE的dom2事件不能在 IE8及其以下浏览器使用
报错:对象不支持“addEventListener”属性或方法
二、IE浏览器下的dom2事件绑定
1、语法:元素.attachEvent(type,listener)
2、注意:
①事件类型必须有 on
②没有事件捕获
③按照事件绑定的顺序依次触发 IE9
④按照事件绑定的顺序倒序输出 IE8及其以下
⑤支持事件冒泡
eg:
var box = document.getElementsByTagName('div')[0]; box.attachEvent('onclick', function () { console.log('box 被点击了11111'); }); box.attachEvent('onclick', function () { console.log('box 被点击了222222'); }); box.attachEvent('onclick', function () { console.log('box 被点击了33333'); });
3、解绑
①匿名函数无法解绑
②语法:元素名.detachEvent('事件类型',函数名)
eg:
var box = document.getElementsByTagName('div')[0]; var btn = document.getElementsByTagName('button')[0]; function show(){ console.log('我是一个函数'); } box.attachEvent('onclick', show); btn.onclick = function () { box.detachEvent('onclick',show); }; document.body.ondblclick = function () { console.log('body被点击了'); }