事件和事件的三种模型 http://www.cnblogs.com/Leo_wl/p/3267503.html
一个通用的事件监听函数
关于事件最多的还是IE事件模型和标准(DOM2)事件模型的区别?兼容性怎么处理?
区别:
IE事件模型:
- 只有冒泡没有捕获;
- 事件处理程序的函数参数不是event,而是window.event;
- 事件的监听(注册)用attachEvent(执行顺序与添加顺序相反),取消监听用detachEvent;
- 第一个参数,事件类型要加上“on”。
- 阻值默认行为时,设置window.event.returnValue=false;
- 阻值冒泡时,window.event.cancelBubble=true.
标准事件模型:
- 事件冒泡和事件捕获都有,先捕获,再目标对象的事件处理程序运行,再从目标对象冒泡的document
- 事件处理程序的函数参数是event
- 事件的监听(注册)用addEventListener(执行顺序与添加顺序一致),取消监听用removeEventListener;
- 第一个参数,事件类型不用加上“on”。
- 阻值默认行为时,调用e.preventDefault();
- 阻值冒泡时,调用e.stopPropagation()
兼容性:(具体就不细说了)
- window.event
- 键盘值得获取
- 事件源的获取
- 事件监听
- 鼠标位置