如何使用事件?以及IE和标准DOM事件模型之间存在的差别?
- 关于事件
- IE的事件流:事件冒泡
- 其他浏览器支持的另一种事件流:事件捕获
- 标准的事件模型分为3个阶段:捕获阶段,目标阶段,冒泡阶段
- 使用方式和差异
- 标准的事件模型使用addEventLisenter,removeEventListener监听,移除事件,事件名不用加“on”,还可以使用第3个参数来指定事件在捕获阶段(true)还是冒泡阶段(false)
- IE事件模型使用attachEvent,detachEvent监听,移除事件,事件名加“on”: 如 onclick,没有第三个参数
- 阻止事件发生时浏览器的默认行为
if (window.event) {//IE window.event.returnValue = false; } else { evt.preventDefault(); }
- 阻止冒泡
if (window.event) {//IE window.event.cancelBubble = true; } else { evt.stopPropagation(); }