JS之事件处理

1,事件流:事件触发顺序
    事件冒泡:(IE)从嵌套层次最深的元素开始,逐级向上传播至document
    事件捕获:与事件冒泡相反
2,事件处理程序
a,HTML事件处理程序;

	<input type="button" value="btn1" οnclick="fun()">
	<script type="text/javascript">
	function fun()
	{
	doucument.write("HTML事件处理程序");
	}
	</script>

b,Dom0级事件处理程序
	<input type="button" value="btn2" id="btn2">
	<script type="text/javascript">
	function fun()
	{
	 doucument.write("Dom0级事件处理程序");
	}
	var tn=document.getElementByid("btn2");
	//添加事件
	tn.οnclick=function()
	{
		doucument.write("Dom0级事件处理程序");
	}
	tn.οnclick=fun;
	//删除事件
	tn.οnclick=null;
	</script>
c,Dom2级事件处理程序

	<input type="button" value="btn3" id="btn3">
	<script type="text/javascript">
	function fun()
	{
	 doucument.write("Dom0级事件处理程序");
	}
	var tn=document.getElementByid("btn3");
    //添加事件
	tn.addEventListener("click",fun,false);//false表示事件冒泡(非IE)
	tn.attachEvent("onclick",fun);//(IE事件处理程序)
    //删除事件
	tn.removeEventListener("click",fun,false);
	tn.detachEvent("onclick",fun);//(IE事件处理程序)
	</script>

d,跨浏览器事件处理程序
	<input type="button" value="btn4" id="btn3">
	<script type="text/javascript">
	function fun()
	{
	 doucument.write("Dom0级事件处理程序");
	}
	var tn=document.getElementByid("btn4");
    var eventf={
		//添加事件
		addEvent:function(ele,eventType,func){
			if(ele.addEventListener){
				ele.addEventListener(eventType,func,false);//false表示事件冒泡(非IE)
			}else if(ele.attachEvent){
				ele.attachEvent("on"+eventType,func);//(IE)
			}else{
				ele["on"+eventType]=func;
			}
		}
		//删除事件
		removeEvent:function(ele,eventType,func){
			if(ele.removeEventListener){
				ele.removeEventListener(eventType,func,false);//false表示事件冒泡(非IE)
			}else if(ele.detachEvent){
				ele.detachEvent("on"+eventType,func);//(IE)
			}else{
				ele["on"+eventType]=null;
			}
		}
	}
	//调用变量
	eventf.addEvent(tn,"click",fun);
	</script>

3,事件对象
   a,DOM中的事件对象
   事件类型:type
   事件目标:target
   阻止冒泡:event.stopPropagation();
   阻止事件默认行为:event.preventDefault();
   b,IE中的事件对象
   事件类型:type
   事件目标:srcElement
   阻止冒泡:cancelBubble(true/false)
   阻止事件默认行为:returnValue(true/false)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值