碰到几个问题,总结一下:
- 什么是事件冒泡
被点击后,由最具体的事件接收,逐级向上传至最不具体的那个节点 - 事件流
描述页面接收事件的顺序
分为html事件,DOM0级事件,DOM2级事件
DOM 0级与html事件需要加上on,DOM2在非ie下不需要,因为已经有了listen这个监听的东西,在ie下DOM2的attachEvent和detatchEvent需要加上on
注意: Internet Explorer
8 及更早IE版本不支持 addEventListener() 方法,,Opera 7.0 及 Opera 更早版本也不支持。
但是,对于这些不支持该函数的浏览器,你可以使用 attachEvent() 方法来添加事件句柄
element.addEventListener(event,
function, useCapture),前两个参数常见,对于第三个就不太了解了!!!那么~接下来
useCapture 可选。布尔值,指定事件是否在捕获或冒泡阶段执行。
true - 事件句柄在捕获阶段执行
false 默认。事件句柄在冒泡阶段执行,一般是false,能保证浏览器的兼容性
另外,DOM2 余DOM0级事件可以添加多个事件
您可以在文档中添加许多事件,添加的事件不会覆盖已存在的事件。
document.getElementById("myBtn").addEventListener("click",
myFunction);
document.getElementById("myBtn").addEventListener("click",
someOtherFunction);
removeEventListener()
方法用于移除由 addEventListener() 方法添加的事件句柄。
注意: Internet Explorer 8 及更早IE版本不支持 removeEventListener() 方法,Opera 7.0 及 Opera 更早版本也不支持。 但是,对于这些不支持该函数的浏览器,你可以使用 detachEvent() 方法来移除由 attachEvent() 方法添加的事件句柄
- 在DOM0事件中,
var btn1=document.getElementById(“button”);
btn1.onclick=function(){}; 添加事件
btn1.onclick=null; 用null取消事件绑定 - 再一点,attachEvent()和detatchEvent()只有两个参数,ie就是冒泡;
btn1.attachEvent(”onclick”, function(){}),btn1由id获取