`

Jquery dom 事件冒泡处理

 
阅读更多
1. 什么是冒泡
在页面上可以有多个事件,也可以多个元素响应同一个事件.for example:
<tr>
    <td>
        <a ../>
    </td>
</tr>

当事件发生时,会首先发送给最具体的元素,在这个元素获得响应机会之后,事件会向上冒泡到其他外层元素。在我们的例子中,<a>会首先处理事件,然后按照顺序依次是<td>和<tr>.

2. 事件冒泡的副作用
假设例子中的所有元素都被绑定了click事件。

<script type="text/javascript">
$(function(){
    // 为a元素绑定click事件
    $('a').bind("click",function(){
        var txt = $('#msg').html() + "<p>内层a元素被点击.<p/>";
        $('#msg').html(txt);
    });
    // 为td元素绑定click事件
    $('td').bind("click",function(){
        var txt = $('#msg').html() + "<p>外层td元素被点击.<p/>";
        $('#msg').html(txt);
    });

    // 为tr元素绑定click事件
    $("tr").bind("click",function(){
        var txt = $('#msg').html() + "<p>tr元素被点击.<p/>";
        $('#msg').html(txt);
    });
})
</script>


当单击a元素,即触发a元素的click事件时,会输出3条记录。只单击内部a元素,就会触发外部td元素和tr元素 上绑定的click事件。这是由事件冒泡引起的。

3. 阻止事件冒泡


<script type="text/javascript">
$(function(){
    // 为a元素绑定click事件
    $('a').bind("click",function(event){
        var txt = $('#msg').html() + "<p>内层a元素被点击.<p/>";
        $('#msg').html(txt);
       if (window.event) {  
         event.cancelBubble = true;  //ie
      }  else {
        event.stopPropagation();  //firefox
      } 
    });
    // 为td元素绑定click事件
    $('td').bind("click",function(event){
        var txt = $('#msg').html() + "<p>外层td元素被点击.<p/>";
        $('#msg').html(txt);
        if (window.event) {  
         event.cancelBubble = true;   //ie
      }  else {
        event.stopPropagation(); //firefox
      }
    });

    // 为tr元素绑定click事件
    $("tr").bind("click",function(event){
        var txt = $('#msg').html() + "<p>tr元素被点击.<p/>";
        $('#msg').html(txt);
        if (window.event) {  
         event.cancelBubble = true;   //ie
      }  else {
        event.stopPropagation(); //firefox
      } 
    });
})
</script>
分享到:
评论

相关推荐

    jquery阻止事件冒泡

    除了`stopPropagation()`,jQuery还提供了`event.stopImmediatePropagation()`方法,它不仅阻止当前事件的冒泡,还会停止同一事件在同一元素上其他事件处理程序的执行。如果一个元素有多个相同的事件监听器,这会...

    JQuery中DOM事件冒泡实例分析

    JQuery中的DOM事件冒泡实例分析主要就是研究在JQuery环境下如何处理事件冒泡,以及如何控制事件冒泡以防止它引起一些预料之外的后果。 为了更好地理解事件冒泡,我们可以通过一个实例来进行分析。假设在页面上有三...

    事件冒泡是什么如何用jquery阻止事件冒泡

    - 使用返回false的方式:在事件处理函数中直接返回false,这将同时阻止事件冒泡和事件的默认行为。例如:`$(selector).click(function() { return false; });` - 使用event.preventDefault()方法:这个方法用来...

    jquerydom对象的事件隐藏显示和对象数组示例

    在本文中,我们将深入探讨jQuery的DOM对象事件处理、隐藏显示功能以及如何操作对象数组。jQuery作为一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互,使得Web开发更加便捷。 首先,让...

    利用JQuery阻止事件冒泡

    除了使用event对象的方法外,JQuery的事件处理函数还提供了一个简写形式来阻止冒泡,即直接在事件处理函数的末尾返回false。这等同于调用了event.stopPropagation()和event.preventDefault()。例如: ```javascript...

    jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理

    在jQuery 1.9.1中,事件系统是其核心功能之一,允许开发者方便地...这对于理解和优化jQuery代码,以及在开发中更有效地使用事件处理具有重要意义。在实际应用中,理解这些细节有助于编写更加高效和可控的事件处理逻辑。

    jquery取消事件冒泡的三种方法(推荐)

    在jQuery事件处理函数中直接返回`false`是一种最简单的方式来同时阻止事件的默认行为和事件的冒泡传播。示例如下: ```javascript $("form").submit(function(){ return false; }); ``` 这段代码会阻止表单的...

    jquery图片冒泡提示效果

    该效果的核心在于利用jQuery的事件处理机制(如mouseover和mouseout)以及DOM操作方法来创建和控制提示框。首先,我们需要在HTML结构中为每张图片设置相应的数据属性,用来存储提示信息。例如: ```html 这是图片的...

    JQuery 提供了两种方式来阻止事件冒泡.rar

    这个方法是jQuery中的一个事件处理函数,当在事件处理程序中调用它时,可以阻止事件继续在其DOM层次结构中向上冒泡。例如,如果你在一个子元素上有一个事件监听器,并且你希望该事件只在此元素上执行,而不是影响到...

    jQuery彩色心形冒泡动画特效

    jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计和Ajax交互。在本特效中,jQuery的主要作用是处理用户交互和控制动画效果。例如,当用户加载页面或者触发特定事件时,jQuery会启动这个...

    jQuery彩色心形冒泡动画特效.zip

    首先,jQuery是一个轻量级的JavaScript库,它的目标是简化JavaScript的DOM操作、事件处理、动画以及Ajax交互。在"jQuery彩色心形冒泡动画特效"中,jQuery的核心作用在于驱动元素的动态变化和交互。 这个特效的实现...

    jquery实现的冒泡放大器

    jQuery库提供了丰富的DOM操作和动画功能,使得实现这样的效果变得简单易行。以下是实现冒泡放大器的基本步骤: 1. **HTML结构**:首先,我们需要一个容器元素,以及在其中的可放大元素。例如: ```html ...

    jQuery技巧之让任何组件都支持类似DOM的事件管理

    本文将探讨如何利用jQuery实现一个技巧,使得任何组件都能够支持类似于DOM事件的管理,包括事件派发、添加/删除监听器、事件冒泡和阻止默认行为。 首先,我们来看传统的发布-订阅模式。这种模式通常用于实现组件间...

    JQuery绑定事件

    **jQuery绑定事件**是JavaScript库jQuery中的核心功能之一,它极大地简化了DOM元素事件处理的流程,使得开发者能够更加高效地编写代码。在JavaScript原生语法中,为元素添加事件监听器通常涉及到`addEventListener`...

    jquery_tips,JQ实现的冒泡提示

    它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务,大大提高了开发效率。在实现冒泡提示方面,jQuery提供了强大的工具和方法,使得创建动态、交互式的提示变得简单易行。 二、JQuery冒泡提示的原理 冒泡...

    js阻止冒泡及jquery阻止事件冒泡示例介绍

    标题中提到的“js阻止冒泡及jquery阻止事件冒泡示例介绍”涉及JavaScript和JQuery两种技术在事件处理中阻止事件冒泡的概念。冒泡是指当一个元素上触发了某个事件(如点击),这个事件不仅会在该元素上进行处理,还会...

    Jquery阻止事件冒泡 event.stopPropagation

    总结来说,`event.stopPropagation()`是jQuery中用来控制事件流的重要工具,它允许你在需要的时候精确地控制事件处理流程,避免不必要的事件冒泡到DOM树的上级元素。在编写交互丰富的Web应用时,熟练掌握这一技巧能...

    jQuery阻止事件冒泡实例分析

    在Web开发中,jQuery被广泛使用,特别是在对DOM元素绑定事件处理和操作时。事件冒泡是DOM事件流的三大特性之一,当在一个元素上触发一个事件时,这个事件不仅仅会在该元素上发生,还会向上冒泡至其它父级元素。 在...

Global site tag (gtag.js) - Google Analytics