`
zsjg13
  • 浏览: 142465 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

事件取消

阅读更多

    注册为 properties 的事件处理器的返回值可以被用于取消事件的默认动作。在支持 addEventListener() 的浏览器中,你也可以调用事件对象的 preventDefault() 方法来取消事件的默认动作。IE 9 之前,是将事件对象的 returnValue 属性设置为 false。The following code shows a dummy event handler that uses all three cancellation techniques:

    function cancelHandler(event) {

        var event = event || window.event; // for ie

        /* Do something to handle the event here */

        // Now cancel the default action associated with the event

        if (event.preventDefault) event.preventDefault(); // Standard technique

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

        return false; // For handlers registered as object properties

    }

    当前的 DOM 事件模块草案定义了事件对象的一个属性叫 defaultPrevented。它还没被广泛支持,但意图是该属性将会通常为 false,但如果调用了 preventDefault() 后它就会变为 true。

    取消一个事件所关联的默认动作只是一种事件取消。我们还可以取消事件的传播。支持 addEventListener() 的浏览器中,你可以调用事件对象的 stopPropagation() 方法。如果在同一个对象上还有其他处理器,这些处理器是仍然会被调用的,但调用了 stopPropagation() 后,其他对象上的事件处理器就不会被调用了。stopPropagation() 方法可以在事件传播过程中的任何时候被调用。

    IE 9 之前,IE不支持 stopPropagation() 方法。相反,IE 事件对象有一个属性叫 cancelBubble。将它设为 true 就可以阻止任何进一步的传播了。(IE 8 以及之前的版本不支持事件传播的捕捉阶段,因此冒泡是它的唯一一种可以被取消的传播)。

    当前的草案 DOM 事件规范定义了事件对象上的另一个方法,叫 stopImmediatePropagation()。像 stopPropagation() 一样,该方法阻止事件传播到任何其他对象。但它还会阻止注册在同一个对象上的任何其他事件处理器。在写本书时,一些浏览器已经支持,但其他还不支持。一些工具库,如 jQuery 和 YUI,以跨平台的方式定义了 stopImmediatePropagation。

分享到:
评论

相关推荐

    浅谈javascript事件取消和阻止冒泡

    在处理事件时,有时我们需要阻止事件的默认行为或者避免事件的冒泡,这就是所谓的事件取消和阻止冒泡。 首先,让我们来理解什么是事件取消。事件取消的目标是防止浏览器执行与特定事件相关的默认行为。例如,当用户...

    TinyEventBus:一个小型且快速的pubsub实现,具有Java 8和11的订户优先级和事件取消功能

    一个小而又快速的pubsub实现,具有Java 8和11的订阅者优先级和事件取消功能。 利用 void run() { Bus bus = new Bus (); bus . reg( Sub . of( System . out :: println)); bus . pub( " Hello World! " ); } ...

    c#事件Demo(纯源码)

    6. **事件取消订阅**:为了避免内存泄漏,当不再需要接收事件时,需要取消订阅。这可以通过从事件中移除事件处理程序来完成: ```csharp publisher.MyEvent -= new EventHandler(this.OnMyEvent); ``` 在...

    光标停止输入触发事件 js

    - 使用 `clearTimeout` 取消之前设置的定时器,确保只有当用户真正停止输入时才触发事件。 4. **变量管理** - 为了跟踪当前的状态(用户是否正在输入),示例中使用了一个全局变量 `flag`。 - 当用户停止输入且...

    jQuery取消特定的click事件

    对于特定的click事件取消问题,jQuery提供了一个非常方便的方法,即使用事件命名空间。通过为事件命名空间,我们可以精确地控制哪些事件处理器应该被触发,哪些应该被取消。具体来说,jQuery的事件绑定和解绑都可以...

    flex事件机制的分发

    7. **事件取消**: 如果事件的`cancelable`属性设置为`true`,那么在事件处理过程中,可以调用`preventDefault()`方法来阻止事件的默认行为。 总的来说,Flex事件机制是通过事件流的分发实现组件间的交互,自定义...

    RecyclerView的点击事件

    RecyclerView的点击事件 粘进适配器里 在主方法里面直接调用

    浏览器事件动态注册和取消

    浏览器事件动态注册和取消是Web开发中的重要概念,它涉及到JavaScript和DOM(Document Object Model)交互的核心技术。本文将深入探讨这一主题,帮助你更好地理解和掌握网页交互的机制。 首先,事件是用户与网页...

    分享JavaScript获取网页关闭与取消关闭的事件

    在Web开发中,如何捕捉网页的关闭和取消关闭事件,是一个常被提及的问题。通常情况下,我们主要会用到两个事件来实现这个功能:onbeforeunload和onunload。但这两个事件并不能直接区分用户是选择了离开页面,还是...

    E4A指纹识别类库及示例

    事件 取消按钮.被单击() 指纹识别1.取消指纹识别() 结束 事件 事件 解锁按钮.被单击() 指纹识别1.密码解锁屏幕() 结束 事件 事件 设置指纹识别按钮.被单击() 指纹识别1.设置指纹识别() 结束 事件 事件 指纹...

    JavaScript事件冒泡与取消事件冒泡代码演示

    本段代码演示了如何使用JavaScript取消HTML事件的冒泡,即当后代元素的事件被触发时,祖先元素的相同事件也会被触发。代码中,页面包含一个div元素和一个嵌套在其中的span元素,分别设置了单击响应函数。当单击span...

    dahua sdk转springboot项目 (刷卡、刷人脸、刷二维码、刷身份证)

    取消订阅门禁事件 订阅报警事件 取消报警事件 门禁事件配置 时间段配置 开门——openDoor 关门——closeDoor 查询门(开、关)状态——queryDoorStatus 查询所有用户信息 添加用户 根据用户ID查询用户信息 删除...

    Vue中Table组件Select的勾选和取消勾选事件详解

    在Vue.js中实现Table组件Select功能的勾选和取消勾选事件是前端开发中常见的一项需求,特别是在需要对表格行数据进行多选操作时。根据提供的文件内容,可以总结出以下几个关键知识点: 1. Vue Table组件使用场景: ...

    C#移除所有事件绑定的方法

    事件绑定通常涉及订阅和取消订阅事件。然而,在某些情况下,我们可能需要一次性移除所有事件绑定,例如在对象销毁或重置状态时。本文将深入探讨如何在C#中实现这一功能。 首先,我们需要理解C#中的事件机制。事件是...

    MSAJaxEvents

    开发者可以利用此事件取消或更改即将发生的回发操作。 - pageLoading:在响应从服务器返回之前触发,此时页面上的内容还没有更新。开发者可以利用此事件来执行一些在页面内容刷新前需要完成的任务。 - pageLoaded:...

    Python库 | eventipy-1.0.1.tar.gz

    4. **事件取消**:如果不再需要某个事件处理器,可以使用`remove_listener`方法将其从事件中移除,确保资源的有效利用。 5. **异步支持**:Eventipy支持异步编程,允许在事件处理器中使用协程,这对于高性能的网络...

    Android-shijian-chuli.zip_android

    4. **触摸事件(TouchEvent)**:Android中的触摸事件分为ACTION_DOWN(手指按下)、ACTION_MOVE(手指移动)、ACTION_UP(手指抬起)和ACTION_CANCEL(事件取消)。开发者可以通过重写View的onTouchEvent()方法来...

    WSAEventSelect

    4. **事件取消**:如果不再需要监听特定事件,可以通过再次调用`WSAEventSelect`并传递适当的事件集来取消事件注册。 **三、使用场景** `WSAEventSelect`通常用于服务器端编程,特别是在需要处理大量并发连接的...

Global site tag (gtag.js) - Google Analytics