`

js事件机制

    博客分类:
  • js
 
阅读更多

1.事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。

2.目标元素: 任何一个事件的目标元素都是最开始的那个元素,并且它在我们的元素对象中以属性的形式出现。使用事件代理的话我们可以把事件处理器添加到一个元素上,等待一个事件从它的子级元素里冒泡上来,并且可以很方便地得知这个事件是从哪个元素开始的。

以前对js的冒泡机制有点了解,知道window.event.cancelBubble 来设置是否启用事件传播.但是这只能在IE是使用.如果跨浏览器就不太合适了.Jquery中的event.stopPropagation()解决了浏览器的兼容性.以下举例说明:

<script type="text/javascript"> 
        $(function () { 
            $("div").css({ border: "1px solid red" }); 
            $("#div1").css({ height: "500px", width: "500px" }).bind("click", function (event) { alert("div1"); return false;}); 
            $("#div2").css({ height: "300px", width: "300px" }).bind("click", function (event) { event.stopPropagation(); alert("div2"); }); 
            $("#div3").css({ height: "100px", width: "100px" }).bind("click", function (event) { alert("div3");  }); 
            $(document).bind("click", function (event) { alert("document"); }); 
        }); 
    </script> 
</head> 
<body> 
    <div id="div1"> 
        <div id="div2"> 
            <div id="div3"> 
            </div> 
        </div> 
    </div>

  

正常情况下,我们单击div3会显示"div3”—>"div2”—>"div1”—>"document”.但是我们在div2上加上event.stopPropagation()后,单击div3显示顺序为"div3”—>"div2”, 当单击div3时首先会触发div3的click事件,然后根据dom模型传播到div3的父节点也就是div2,然后执行div2的click事件,由于在div2的click事件中加入了event.stopPropagation(),取消事件传播,也就是说事件不再向上传播.

再来看div1,正常情况下单击div1会显示"div1”—>"document”.在div1中加入return false,通过返回false来取消默认的行为并阻止事件起泡。单击后只显示"div1".

分享到:
评论

相关推荐

    JavaScript事件机制详细研究

    JavaScript 事件机制详细研究 JavaScript 事件机制是指浏览器中发生的各种事件,例如点击、鼠标悬停、键盘输入等,JavaScript 通过捕捉这些事件来执行相应的操作。本文将详细介绍 JavaScript 事件机制的实现方式和...

    js事件机制 .pdf

    ### JavaScript事件机制详解 #### 一、引言 在学习编程语言的过程中,"事件"这一概念往往是初学者遇到的一个难点,然而它又是编程中极为重要的一个组成部分。在JavaScript中,事件处理更是不可或缺的一部分,它是...

    【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)1

    JavaScript 事件机制是网页交互的...总之,理解JavaScript事件机制,特别是捕获/冒泡和DOM事件流,对于解决移动端兼容性问题至关重要。通过使用合适的工具和策略,开发者可以创建出具有良好交互体验的跨平台网页应用。

    node.JS事件机制与events事件模块的使用方法详解

    在Node.js中,事件机制是其核心特性之一,它基于异步I/O处理,使得程序能够高效地处理多个并发操作。事件驱动的架构使得代码结构更简洁,避免了回调地狱的问题。本文将深入探讨Node.js事件机制以及`events`模块的...

    js事件监听机制(事件捕获)总结

    JavaScript事件监听机制是前端开发中极其重要的一环,它允许开发者对用户行为(如点击、按键、鼠标移动等)作出响应。事件监听涉及的几个核心概念包括事件传播的两种方式:事件捕获和事件冒泡,以及兼容性问题和事件...

    JS 事件机制完整示例分析

    总结,JavaScript事件机制是实现网页交互的核心,理解并熟练运用事件处理程序、事件绑定、常见事件类型以及事件冒泡和阻止默认行为,能够帮助开发者创建更加动态和用户友好的Web应用。通过学习和实践这些示例,你...

    javaScript事件机制兼容【详细整理】

    JavaScript事件机制是Web开发中的核心概念之一,它负责页面中事件的响应和处理。为了保证在不同的浏览器中能够正确地执行事件处理函数,开发者需要对不同浏览器之间的事件机制兼容性有所了解,并进行相应的处理。...

    javascript事件详解

    在W3C规范出台之前,JavaScript事件机制在IE和Netscape浏览器中有两种不同的处理方式:冒泡和捕获。IE采用冒泡模型,事件从子元素向上冒泡到父元素;Netscape则采用捕获模型,事件从父元素向下捕获到子元素。W3C标准...

    js事件机制—-捕获与冒泡机制实例分析

    本文实例讲述了js事件机制—-捕获与冒泡机制。分享给大家供大家参考,具体如下: 先从事件绑定机制说起, 事件绑定机制通过绑定方法addEventListener()实现, 语法格式如下: element.addEventListener(event, function...

    深入解析JavaScript框架Backbone.js中的事件机制

    总的来说,Backbone.js的事件机制和服务器同步功能是其强大之处,它们简化了前端和后端之间的数据交互,同时也促进了组件间的解耦。理解并熟练运用这些机制,可以帮助开发者构建更高效、更易于维护的JavaScript应用...

    使用JavaScript事件综合查询,js事件大全

    JavaScript事件是浏览器或Node.js环境中发生的特定行为,如用户点击按钮、页面加载完成或输入框获得焦点等。事件驱动编程是JavaScript的核心特性之一,通过监听和处理这些事件,我们可以创建响应式的用户体验。 二...

    js事件机制----捕获与冒泡机制实例分析

    JavaScript事件机制是JavaScript中处理用户交互的核心部分,它允许开发者响应用户的各种操作,如点击、鼠标移动等。在JavaScript中,事件的传播分为两个阶段:捕获阶段和冒泡阶段。 **捕获阶段**(Capture Phase)...

    openlayer事件机制介绍

    事件机制是OpenLayers的核心部分,它使得用户与地图进行交互成为可能。在OpenLayers中,事件机制主要涉及到控件(Controls)和处理器(Handlers)的概念。 控件在OpenLayers中扮演着重要的角色,它们是附加到地图上...

    事件集合js事件集合js事件集合

    此外,还有一些高级事件机制,如事件委托(event delegation),它利用事件冒泡原理,将事件监听器添加到父元素上,从而减少内存消耗和提高性能。还有`Event`对象,它提供了`preventDefault()`方法阻止默认行为(如...

    十二、前端开发中的事件机制和JSON使用详解

    使用场景及目标:①了解并熟练运用JS事件机制;②掌握解决跨浏览器兼容性的方法;③学会高效地使用JSON进行前后端通信和数据存储。 阅读建议:阅读时应重点注意事件相关API的具体用法及其兼容处理方式,同时通过实际...

    简析JavaScript事件、以及捕获和冒泡

    本文将深入探讨JavaScript事件机制,特别是事件的捕获和冒泡阶段。 首先,理解JavaScript事件的基础概念至关重要。事件是用户或浏览器在与网页交互时发生的动作,比如点击按钮、页面加载或滚动等。当这些事件发生时...

    JavaScript程序设计——事件处理实验报告.docx

    实验报告详细介绍了JavaScript事件处理的相关知识,这在Web开发中是非常关键的一部分,因为事件是用户与网页交互的主要方式。以下是对各个知识点的详细说明: 1. **JavaScript事件基本概念**: - **事件**:是用户...

Global site tag (gtag.js) - Google Analytics