1、理解事件流
1.1、在点击某个按钮的同时,也点了这个按钮所在的容器。
1.2、事件冒泡流:即事件最开始由最具体的元素(文件中嵌套层次最深的那个节点)接收。然后逐级向上传播至最不具体的那个节点(文档)。
1.3、事件捕获流:与事件冒泡流思想刚相反,不太具体的最先接收,具体的最后接受。
2、使用事件处理程序
js与html代码紧密的耦合在一起,一旦修改一个,html和js代码都要修改
3、Dom 0 级事件处理程序:先获取到具体的元素
var btn = document.getElementById('btn');
btn.onclick = function(){
alert('这是一个Dom 0 级添加的事件');
}
btn.onclick = null;//删除事件
4、Dom2级事件处理程序
Dom2级事件定义了两个方法:
用于处理指定和删除事件处理程序的操作 addEventListener()和removeEventListener().
他们会接收三个参数:处理的事件名、作为事件处理程序的函数和布尔值(true表示在捕获阶段调用这个函数,false则在冒泡阶段)
var btn = document.getElementById('btn');
//DOM2级事件
btn.addEventListener('click',showMes,false);//冒泡阶段
btn.removeEventListener('click',showMes,false);//删除时参数必须相同
Dom2级和0级优点:可以在一个按钮上添加多个事件,html事件则不行
4、IE事件处理程序
IE不支持DOM2级事件
attachEvent()添加事件
detachEvent()删除事件
接收相同的两个参数,事件处理 程序名和事件处理程序的函数
不使用第三个参数的原因是:IE8以及更早的浏览器版本只支持事件冒泡
var btn = document.getElementById('btn');
btn.attachEvent('click',showMes);//冒泡阶段
网友评论