Javascript中的事件冒泡

1、概念

事件冒泡:如果元素A嵌套在元素B中,那么A被点击不仅A的onclick事件会被触发,B的onclick也会被触发。触发的顺序是“由内而外”。

2、取消事件冒泡

谷歌、IE

window.event.cancelBubble = true;

火狐

e.stopPropagation();

示例代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>Javascript测试</title>
    <script type="text/javascript">
        onload = function(){
            document.getElementById(‘dv‘).onclick=function(){
                alert(this.id);
            };
            document.getElementById(‘p1‘).onclick=function(){
                alert(this.id);
                window.event.cancelBubble = true;//取消事件冒泡
            };
        };
    </script>
</head>
<body>
    <div id="dv" style="width:300px;height:180px;border:solid 1px red;">
        <p id="p1" style="width:200px;height:50px;background-color: aquamarine;">这里是P标签</p>
    </div>
</body>
</html>

效果图一(firefox不支持window.event.cancelBubble)

效果图二(IE)

示例代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>Javascript测试</title>
    <script type="text/javascript">
        onload = function(){
            document.getElementById(‘dv‘).onclick=function(){
                //alert(this.id);
                alert(window.event.srcElement.id);//通过srcElement获取到最原始的element的id
            };
            document.getElementById(‘p1‘).onclick=function(){
                alert(this.id);
                //window.event.cancelBubble = true;//取消事件冒泡
            };
        };
    </script>
</head>
<body>
    <div id="dv" style="width:300px;height:180px;border:solid 1px red;">
        <p id="p1" style="width:200px;height:50px;background-color: aquamarine;">这里是P标签</p>
    </div>
</body>
</html>

效果图

再次强调this表示的是当前监听的事件

event.srcElement是引发事件的对象(冒泡)

时间: 2024-10-10 04:08:45

Javascript中的事件冒泡的相关文章

JavaScript中的事件冒泡定义及取消

事件冒泡:如果元素A嵌套在元素B中,那么A被点击不仅A的onclick事件会被触发,B的onclick也会被触发.触发的顺序是“由内而外” . 验证:在页面上添加一个div.p.strong,在div.p.strong中添加onclick事件响应 取消事件冒泡: window.event.cancelBubble = true;//IE下的写法. arguments[0].stopPropagation();//火狐中的写法. 例子: <html xmlns="http://www.w3.

JavaScript中的事件冒泡?事件传播的解释

注:本文来源  可译网 事件冒泡是你在学习javaScript旅途中遇到的一个术语,它涉及到当一个元素被另一个元素嵌套时调用事件处理的顺序,并且两个元素注册了同一个事件(例如,点击事件). 但是事件冒泡仅仅是难题的一部分.它经常和事件捕获和事件传播一起被提及,并且对这三个概念有着很深的了解是学习javaScript事件必不可少的,例如,假如你想实现事件委托. 在这篇文章中,我会解释这些术语,并展示它们如何组合在一起.我还将向您展示如何对JavaScript事件流的基本了解可以让您对应用程序进行细

javascript中的事件冒泡、事件捕获和事件执行顺序

谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有着相当大的影响.这两种事件流分别是捕获和冒泡.和许多Web技术一样,在它们成为标准之前,Netscape和微软各自不同地实现了它们.Netscape选择实现了捕获事件流,微软则实现了冒泡事件流.幸运的是,W3C决定组合使用这两种方法,并且大多数新浏览器都遵循这两种事件流方式. 1事件传播--冒泡与捕

javascript中的事件冒泡和事件捕获

焦点事件onfocus:得到焦点onblur:失去焦点 事件冒泡(和样式无关,结构)当一个元素接收到事件的时候,会把他接收到的所有事件传播给他的父级,一直到顶层window 阻止冒泡:当前要阻止冒泡的事件函数中调用event.cancelBubble=true; //阻止当前事件的当前对象 事件捕获: 绑定事件:1.obj.onclick=function(){} //一个对象同一个事件绑定2个函数会产生覆盖2.ie:obj.attachEvent('onclick',fn1) 标准:obj.a

JavaScript 进阶教程一 JavaScript 中的事件流 - 事件冒泡和事件捕获

先看下面的示例代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JavaScript 中的事件冒泡与事件捕获</title> </head> <body> <div id="Red" style="width:200px;height:200px;background-color:red;padding:2

JQuery中的事件冒泡和阻止事件的传播行为

之前的这篇博客详细地介绍了javascript中的事件冒泡和事件捕获,以及DOM事件流.现在我们来看下,JQuery框架中的事件冒泡问题,以及如何阻止事件的传播行为. 1.JQuery中的事件绑定,都是属于事件冒泡. 这篇博客介绍了JQuery中绑定事件处理函数的几种方式,从中可以看到:这几种绑定方式,都不允许我们传递事件类型(是事件冒泡,还是事件捕获).而javascript原生提供的addEventListener()则允许我们设置事件的类型. <script> $(function(){

javascript中的事件

在javascript中的事件有三个方面的知识,一是事件流,二是事件处理程序,三是事件对象.下面就我个人的一点理解,分别讲述一下这三个方面的内容. 第一.事件流 事件流指的是事件按照一定的顺序触发.它有两个顺序,分别是自上而下和自下而上. 自上而下的叫做事件捕获,事件捕获指的是事件的处理将从DOM层次的根开始,而不是从触发事件的目标元素开始,事件被从目标元素的所有祖先元素依次往下传递.在这个过程中,事件会被从文档根到事件目标元素之间各个继承派生的元素所捕获,如果事件监听器在被注册时设置了useC

了解javascript中的事件(一)

零.寒暄 由于刚入职,近期事情繁多,今天好不容易中期答辩完事,晚上有一些时间,来给大家分享一篇博文. 这段时间每天写js接触事件比较多,自己会使用,但是用的时候比较混乱,现在系统的整理下,好了,闲话不多说,谈正事! 一.事件概念 什么是事件?说白了,事件是文档或浏览器中发生的特定交互瞬间!比如鼠标点击,滑过等等. 二.事件流 事件流就是描述了页面中接受事件的顺序.在浏览器发展的初期,两大浏览器厂商IE和Netscape互掐,出现了一个坑爹的情况,那就是他们对事件流的解释出现了两中截然相反的定义.

JavaScript中的事件对象

JavaScript中的事件对象 JavaScript中的事件对象是非常重要的,恐怕是我们在项目中使用的最多的了.在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含这所有与事件有关的信息.下面将会讲到DOM中的事件对象.IE中的事件对象以及跨浏览器的事件对象三个部分. 对于事件处理程序,大家可以看我的博文<JavaScript中的五种事件处理程序>. 第一部分:DOM事件对象 兼容DOM的浏览器会将一个event对象传入到事件处理程序中,无论是HMTL特性.DOM0级还是