DOM事件

      IE的事件流是事件冒泡流,而Netscape的事件流是事件捕获流。事件冒泡,即事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上转播至最不具体的节点(文档);事件捕获则相反,是不太具体的节点应该更早接收到事件,而最具体的节点最后接收到事件。

      事件的三种处理程序:


1.HTML事件处理程序

<input type="button" value="按钮" id="btn" οnclick="show()">

事件直接加在HTML标签结构里。缺点是HTML和js耦合度高,如果要修改函数可能要修改两处。

2.DOM0级事件处理程序

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div id="box">
             <input type="button" value="按钮2" id="btn2">
        </div>
<script type="text/javascript">
	var btn2=document.getElementById('btn2');
	btn2.οnclick=function(){
		alert('dom0!');
	}
</script>
</body>
</html>

把一个函数赋值给一个事件的处理程序属性。先用变量取出元素,让事件以这个对象属性的形式出现的方式添加。它简单,且具有跨浏览器优势。要取消这个时间,设置=null即可。

3.DOM2级事件处理程序

DOM2级事件定义了两个方法:用于处理指定和删除事件处理程序的操作:addEventListener()和removeEventListener()。它们都接收三个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。

布尔值--false:表示在冒泡阶段调用事件处理程序(可以最大限度的兼容浏览器),一般设为false;true表示在捕获阶段调用事件处理程序。


注意:
1、若事件名称有on,则需去掉on。如onclick --> click,onmouseover --> mouseover等等;
2、false 最大限度兼容所有浏览器--事件冒泡流。
3.通过addEventListener添加的事件只能通过removeEventListener来删除。参数要与添加事件时相同。
DOM0级和DOM2级事件处理程序可以给一个事件绑定多个函数,事件触发的时候会按照绑定顺序执行各个函数。如下所示:
btn3.addEventListener('click',show,false);
btn3.addEventListener('click',show,function(){alert(this.value);},false);

缺点:IE不支持该事件
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div id="box">
         <input type="button" value="按钮3" id="btn3">
    </div>
<script type="text/javascript">
	function show(){
		alert('dom2!');
	}
	var btn3=document.getElementById('btn3');
	btn3.addEventListener('click',show,false);
</script>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值