`
namezhou
  • 浏览: 158600 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

javascript 点击子元素时不触发父元素的点击事件

阅读更多

参考自:https://segmentfault.com/q/1010000003015684

DOM事件处理有三个阶段:

  1. 捕捉阶段(capture phase):从最上层元素,直到最下层(你点击的那个target)元素。路过的所有节点都可以捕捉到该事件。
  2. 命中阶段(target phase):如果该事件成功到达了target元素,它会进行事件处理。
  3. 冒泡阶段(bubbling phase):事件从最下层向上传递,依次触发父元素的该事件处理函数。

在任意一个阶段的事件处理函数中,都可以通过调用event.stopPropagation来中断事件流,后续的阶段将不会被调用。

 

则在子元素事件处理过程中调用event.stopPropagation() 即可阻断事件继续冒泡。

分享到:
评论

相关推荐

    阻止子元素继承父元素事件具体思路及实现

    在给定的标题和描述中,我们面临的问题是希望阻止子元素`#p_cont`继承父元素`#p_box`的事件,即在点击`#p_cont`时不会触发`#p_box`上的`a`事件。 首先,来看原始的HTML结构和事件绑定: ```html ()"> ``` ...

    事件委托与阻止冒泡阻止其父元素事件触发

    现在,当点击`<li>`元素时,只会触发子元素的事件处理函数,不会影响到父元素`<ul>`的事件。这样,我们就成功地阻止了不需要的事件触发,同时实现了事件委托,提高了代码的可维护性和性能。 总结来说,事件委托是一...

    鼠标经过子元素触发mouseout,mouseover事件的解决方案

    这就意味着,当鼠标从父元素移向子元素时,会先触发父元素的`mouseout`,接着触发子元素的`mouseover`,反之亦然。这种行为在某些情况下可能会导致不期望的结果,比如本例中的动画异常。 为了解决这个问题,我们...

    js 阻止子元素响应父元素的onmouseout事件具体实现

    但在一些场景下,我们需要在鼠标从子元素移出到父元素时不触发父元素的onmouseout事件,以避免不必要的响应。 在文档中提到的场景,就是要实现阻止子元素的onmouseout事件触发父元素的onmouseout事件。具体实现方法...

    JavaScript之事件委托.pdf

    3. 在父元素的事件处理函数中,通过事件对象(如`event`)的`target`属性来确定哪个子元素触发了事件。`target`属性指向事件的原始目标,即实际触发事件的元素。 4. 根据`target`选择器,执行相应的操作,例如改变...

    利用事件冒泡(Event Bubbling )获取鼠标下的元素属性

    当一个事件(如鼠标点击)在某个元素上触发时,该事件会先在该元素上触发其事件处理函数,然后依次向其父元素传递,直到到达DOM树的根节点。这个过程就是事件冒泡。 利用事件冒泡获取鼠标下的元素属性,我们可以...

    javascript事件详解

    在处理跨浏览器事件时,需要注意IE和其他浏览器之间的差异,以确保代码兼容性。 总的来说,JavaScript事件是构建动态网页的关键工具,理解并掌握事件处理机制、事件阶段和事件对象的使用,能够帮助开发者编写更高效...

    按名称触发事件.rar

    事件委托是一种优化策略,它在父元素上设置一个事件监听器,然后通过事件冒泡机制来处理子元素的事件,这样可以减少内存占用和提高性能。 6. **解耦合**:通过函数名称与事件关联,可以使事件处理代码与触发事件的...

    09JavaScript事件总结.docx

    当子元素事件触发时,事件冒泡到父元素,由父元素的监听器处理。这种方法减少了内存消耗,提高了性能。以下代码展示了如何使用事件委托来处理子元素的点击事件: ```javascript var box = document.getElementById...

    js事件触发大全

    3. **事件委托**:通过监听父元素来处理子元素的事件,提高性能。 4. **事件对象**:获取事件的相关信息,如鼠标位置、按键状态等。 5. **兼容性考虑**:确保代码在不同浏览器版本中的表现一致。 通过上述介绍,...

    javascript中mouseover、mouseout使用详解

    在子元素上触发的事件会冒泡至父元素,如果在父元素上也绑定了事件处理程序,则父元素的事件处理程序也会被执行,可能会导致重复的事件处理。 为了解决这个问题,可以采用几个不同的策略: 1. 使用mouseenter和...

    经过绑定元素时会多次触发mouseover和mouseout事件

    然而,当这些事件被绑定到一个包含子元素的父元素上时,问题就出现了:当鼠标在子元素之间移动时,会连续触发 `mouseover` 和 `mouseout` 事件,这被称为事件冒泡或捕获。这种行为可能会导致不必要的处理,甚至在...

    layui动态绑定事件的方法

    事件委托的核心思想是利用事件冒泡原理,即子元素触发的事件会冒泡到父元素上。我们只需要在父元素上设置一个事件监听器,就可以捕捉到所有子元素触发的特定事件。这样,无论子元素是何时添加到DOM中的,只要它们...

    javascript事件查询综合

    事件委托是一种优化技术,通过将事件监听器添加到父元素上,利用事件冒泡来处理子元素的事件。这样可以减少内存消耗,因为不必为每个子元素都添加监听器: ```javascript document.getElementById('container')....

    javascript防止事件传播

    在上述示例中,点击按钮时只会打印“子元素被点击”,因为`stopPropagation()`阻止了事件冒泡到父元素。如果移除`event.stopPropagation()`,则会同时打印“子元素被点击”和“父元素被点击”。 总之,理解和掌握...

    JavaScript事件冒泡示例.html

    事件冒泡的核心在于,如果一个元素嵌套在另一个元素中,当最内层的元素发生事件时,事件会首先在这个元素上触发,然后依次传递给它的所有父元素,直到页面的根元素。这种机制允许开发者在一个父元素上监听并处理所有...

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

    事件委托是一种优化性能的策略,通过在父元素上设置事件监听器,来处理子元素的事件。这样减少了监听器的数量,提高了代码效率。 八、合成事件与原生事件 在现代浏览器中,有些事件是合成事件,如`input`事件,它会...

    javascript 讲义_01_事件结束

    例如,当你点击一个按钮,该事件首先会在按钮元素上触发,接着向上传递到它的父元素,直到到达文档的根节点。在JavaScript中,可以使用`addEventListener`方法并设置第三个参数为`false`(默认值)来实现事件冒泡。 ...

    【JavaScript源代码】基于事件冒泡、事件捕获和事件委托详解.docx

    当事件在子元素中触发时,事件会冒泡到父元素,然后在那里被处理。通过检查事件的`event.target`属性,我们可以确定哪个子元素是真正的触发者。例如,如果有多个动态生成的列表项,而不是为每个项绑定点击事件,我们...

Global site tag (gtag.js) - Google Analytics