JavaScript中的事件取消

JavaScript中事件取消分两种类型:

一、取消事件的默认行为,比如:取消form表单默认的提交;

   可以使用如下的代码来取消事件的默认行为:

   function cancelHandler(e) {

       var event = e || window.event;//IE8之前的event只能通过window.event来获得(针对对象属性注册方式)


       //现在取消事件相关的默认行为

       if (event.preventDefault) event.preventDefault(); //非标准技术

       if (event.returnValue) event.returnValue = false; //IE

       return false; //用于处理适用对象属性注册的处理程序

   }


二、取消事件传播(包括捕获阶段、目标对象本身事件处理程序调用阶段和冒泡阶段)

   (1)在支持addEventListener()的浏览器中(IE9之后),可以调用事件对象的一个stopPropagation()方法以阻止事件的继续传播。注意,此方法调用后,如果在同一对象上绑定了其他事件处理程序(无论是何种事件类型),剩下的事件处理程序将依旧被调用,但是,调用stopPropagation()之后,任何其他对象上的事件处理程序将不会被调用(比如在option的click事件处理函数(IE9以后和其他浏览器支持)中调用stopPropagation()方法,那么select的click事件处理函数将不会被调用,也就是阻止了事件的冒泡)。

   (2)在不支持addEventListener()的浏览器中(IE9之前),IE事件对象(window.event)有一个cancelBubble属性,设置这个属性为true能阻止事件进一步传播,但是不支持事件的捕获阶段,只支持事件的冒泡阶段。

   (3)某些浏览器支持Event对象的另一个方法stopImmediatePropagation(),类似stopPropagation()方法,这个方法不但阻止了任何其他对象的事件传播,而且阻止了在相同对象上注册的任何其他事件处理程序的调用。(jQuery和YUI等工具库定义了跨平台的stopImmediatePropagation()方法)

本文出自 “希望家园” 博客,请务必保留此出处http://dyq0908.blog.51cto.com/4347597/1379729

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值