`

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中DOM事件冒泡实例分析

    主要介绍了JQuery中DOM事件冒泡用法,实例分析了事件冒泡的原理与阻止冒泡的方法,需要的朋友可以参考下

    jQuery中阻止冒泡事件的方法介绍

    一、冒泡事件简介 当我们点击一个控件的时候,如果包括这个控件的父控件也有click事件,则会继续执行。比如:div下的a都有click事件,点击a的时候,会alert出现2次。这个现象叫做冒泡事件。 这个事件从原始元素开始...

    Jquery阻止事件冒泡 event.stopPropagation

    描述: 防止事件冒泡到DOM树上,也就是不触发的任何前辈元素上的事件处理函数。 version added: 1.0event.stopPropagation() 我们可以用 event.isPropagationStopped() 来确定这个方法是否(在那个事件对象上)调用过...

    javascript 中事件冒泡和事件捕获机制的详解

    javascript 中事件冒泡和...Jquery的e.stopPropagation会阻止冒泡,意思就是到DOM为止,祖先级的事件就不要触发了  下面是我尝试的例子: &lt;!DOCTYPE html&gt; &lt;html lang=en&gt; &lt;head&gt; &lt;meta char

    DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)

    比如DOM事件,jquery框架帮我们为我们封装和抽象了各浏览器的差异行为,为事件处理带来了极大的便利。不过浏览器逐步走向统一和标准化,我们可以更加安全地使用官方规范的接口。因为只有获得众多开发者的芳心,...

    javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结

    javascript给DOM绑定事件处理函数总的来说有2种方式:在html文档中绑定、在js代码中绑定。下面的方式1、方式2属于在html中绑定事件,方式3、方式4和方式5属于在js代码中绑定事件,其中方法5是最推荐的做法。 方式1:...

    锋利的jQuery_高清_书签.part2

    4.1.4 事件冒泡 4.1.5 事件对象的属性 4.1.6 移除事件 4.1.7 模拟操作 …… 第5章 jQuery对表单、表格的操作及更多应用 第6章 jQuery与Ajax的应用 第7章 插件的使用和写法 第8章 用jQuery打造个性网站

    深入理解jQuery 事件处理

    他的属性提供了关于当前正被处理的已触发事件的大量信息。这包括一些细节,比如在哪个元素上触发的事件、鼠标事件的坐标以及键盘事件中单击了哪个键。 2.事件冒泡 当触发 dom 树中一个元素上的事件时,事件模型会...

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

    本文介绍一个jquery的小技巧,能让任意组件对象都能支持类似DOM的事件管理,也就是说除了派发事件,添加或删除事件监听器,还能支持事件冒泡,阻止事件默认行为等等。在jquery的帮助下,使用这个方法来管理普通对象...

    jQuery权威指南-源代码

    此外,jQuery中完善的Ajax功能、行为与结构层的分离、可靠的事件处理机制也同样使得Web后端开发者如虎添翼,使用少量代码就可以实现复杂的功能。特别是新版本1.4.x的发布,jQuery在功能和性能方面都有质的提升,极大...

    jquery.zeroclipboard:绑定到“ beforecopy”,“ copy”,“ aftercopy”和“ copy-error”事件,使用jQuery的特殊事件API和ZeroClipboard的Core模块生成的用于剪贴板注入的自定义类DOM事件。

    在aftercopy事件处理程序全部被触发或停止之后, click事件也会冒泡。 先决条件 ZeroClipboard需要使用Flash Player 11.0.0或更高版本。 有关基础机制的更多详细信息,请参见 。 通过ZeroClipboard v2.x的智能默认...

    preact-dom-delegate:实现preact的dom事件委托

    在事件处理函数中执行 return false,可以阻止该节点后续事件委托的执行,同时会停止事件冒泡。支持的事件参照 React 说明,,理论上可以对所有支持冒泡的事件进行委托。事件名采用驼峰形式,如 touchstart 事件要用...

    JQuery权威指南源代码

    jQuery事件的链式写法 控制jQuery对象 jQuery控制CSS样式 第2章 使用JavaScript实现隔行变色 使用jQuery选择器实现隔行变色 JavaScript代码检测页面元素 jQuery代码检测页面元素 使用jQuery基本选择器 使用...

    JQuery基础教程(中文高清版)电子书_part2

    【内容简介】 本书以通俗易懂的方式介绍了jQuery的基本概念,主要包括jQuery的选择符、事件、特效、DOM操作、...3.4.1 阻止事件冒泡 3.4.2 移除事件处理程序 3.5 模仿用户操作 3.6 小结第4章 效果——为操作……

    jQuery基础教程(第四版)

    第3章介绍如何通过jQuery的事件处理机制,在浏览器发生事件时触发行为。同时,还会介绍如何以不唐突的方式添加事件(甚至在页面加载完成之前)。此外,这一章还将深入更高级的主题,例如事件冒泡、委托和命名空间。 ...

    前端笔记.zip

    可以用来操作文档对象、 选择DOM元素、制作动画效果、事件处理、使用Ajax等。 优点: a、轻量级 b、具有强大的选择器 c、封装了大量的DOM操作 d、事件处理机制相当可靠 e、完善的Ajax f、不污染顶级变量 g、出色的...

    超实用的jQuery代码段

    3.14 如何为动态添加的元素绑定事件处理函数 3.15 为表格行增加单击事件 3.16 用回车键模拟Tab键 第4章 jQuery操作CSS样式 4.1 使用addClass()函数动态添加样式类 4.2 使用removeClass()函数动态移除样式类 4.3...

    jquery基础教程高清版PDF.part5.rar

     3.4.2 移除事件处理程序   3.5 模仿用户操作   3.6 小结  第4章 效果——为操作添加艺术性   4.1 修改内联CSS   4.2 基本的隐藏和显示   4.3 效果和速度   4.4 多重效果   4.4.1 构建具有...

Global site tag (gtag.js) - Google Analytics