IE的事件传递-event.cancelBubble示例介绍

yizhihongxing

IE的事件传递包含三个阶段:事件捕获阶段、目标元素阶段、事件冒泡阶段。当事件发生时,IE会首先从最外层元素开始,一步步地向事件的目标(被点击的元素)传递,然后再返回,并依次触发每个元素上的事件处理程序。

其中,event.cancelBubble是IE中阻止事件冒泡的方法,该方法可以被使用在事件处理程序内。

以下是两个示例说明:

示例1: 停止事件冒泡

var outer = document.getElementById('outer'),
    inner = document.getElementById('inner');

outer.onclick = function(event) {
    console.log('outer clicked');
};

inner.onclick = function(event) {
    event = event || window.event;
    event.cancelBubble = true;
    console.log('inner clicked');
};

document.onclick = function(event) {
    console.log('document clicked');
};

//如果outer先被点击,控制台会输出 'outer clicked','document clicked'
//如果inner先被点击,控制台会输出'inner clicked'

在上面的示例中,当内部元素inner被点击时,事件冒泡会被阻止,所以不会触发外部元素outer上的事件处理程序。

示例2:使用Event对象的CancelBubble属性终止冒泡事件

var checkbox = document.getElementById('checkbox');

checkbox.onclick = function(event) {
    event.cancelBubble = true;
    console.log('checkbox clicked');
};

document.onclick = function(event) {
    console.log('document clicked');
};

//无论是哪个元素被点击,都不会触发document的事件处理程序

在上面的示例中,当点击复选框checkbox时,事件冒泡会被阻止,所以不会触发document上的事件处理程序。

可以看出,在两个示例中,使用event.cancelBubble方法可以有效的阻止事件冒泡。但是需要注意的是,该方法只适用于IE浏览器,其他浏览器应该使用event.stopPropagation()来停止事件冒泡。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IE的事件传递-event.cancelBubble示例介绍 - Python技术站

(0)
上一篇 2023年6月13日
下一篇 2023年6月13日

相关文章

  • Python制作数据导入导出工具

    下面是关于“Python制作数据导入导出工具”的完整攻略: 概述 在进行数据分析的过程中,通常会需要处理大量的数据,而这些数据往往不是来自于同一个系统或者同一个格式,比如可能是Excel表格、CSV文件、数据库等等。因此,在进行数据导入导出的过程中,需要用到一些工具来进行数据格式转换和处理。Python是一门非常流行的编程语言,也拥有众多的数据处理库,因此使…

    python 2023年6月3日
    00
  • Python学习小技巧之列表项的拼接

    「Python学习小技巧之列表项的拼接」其实非常简单,主要是使用列表的加法运算符和extend方法,下面我来详细讲解一下。 一、使用加法运算符进行列表拼接 列表拼接是将两个或多个列表合并成一个新的列表,通常使用加法运算符进行。 假如我们有以下两个列表: a = [1, 2, 3] b = [4, 5, 6] 我们使用加法运算符将它们合并为新的列表c: c =…

    python 2023年6月5日
    00
  • Python3 assert断言实现原理解析

    Python3 assert断言实现原理解析 何为断言 Python3中有一个关键字assert,用来进行断言判断。所谓断言,是指在运行时检查某个条件是否满足。如果满足则程序正常执行,否则抛出异常。 常见的断言格式为: assert boolean_expression 其中boolean_expression是一个返回布尔值的表达式,如果表达式为假,则会抛…

    python 2023年5月13日
    00
  • python的常用模块之collections模块详解

    Python的常用模块之collections模块详解 1. 什么是collections模块 Python提供了一个比较重要的模块:collections,这个模块包含了一些特殊容器类型,比原生的list、dict、tuple、set等容器类型要强大得多。 collections是Python内建的一个集合模块,提供了一系列有用的集合类,是对dict、li…

    python 2023年5月13日
    00
  • 教你用python将数据写入Excel文件中

    下面为你详细讲解“教你用python将数据写入Excel文件中”的完整实例教程。 1. 准备工作 首先,我们需要安装两个库来实现将数据写入Excel的功能,分别是pandas和openpyxl。我们可以通过在命令行中执行以下两个命令来进行安装: pip install pandas pip install openpyxl 2. 创建Excel文件 接下来,…

    python 2023年5月13日
    00
  • 基于Python制作简单的井字棋游戏

    接下来我将详细讲解如何基于Python制作简单的井字棋游戏。整体流程包括以下几个步骤: 确定游戏规则 在制作井字棋游戏前,我们需要先确定游戏规则。井字棋游戏的规则是:两人轮流在3×3方格棋盘上划X或O,先在横、竖或对角线上连成三个同样标记的人获胜。如果所有的格子都填满,而又没有任何一方达成了胜利条件,则宣布该局游戏为平局。 确定游戏界面 在游戏规则确定后,我…

    python 2023年6月13日
    00
  • 什么是Python闭包?闭包有什么作用?

    在Python中,闭包(Closure)是指一种函数,它可以访问在其定义范围内的变量,并把该函数作为返回值返回。闭包允许你在一个函数中嵌套另一个函数,并且在内部函数中引用外部函数的变量。 在Python中,如果一个函数定义在另一个函数内部,而内部函数使用了外部函数的变量,则称这个内部函数为闭包。闭包是Python中一种强大的编程技巧,它可以让函数保留状态,并…

    2023年2月21日
    10
  • Python魔术方法专题

    Python魔术方法专题攻略 什么是魔术方法 在Python中,以双下划线开头和结尾的方法,被称为”魔术方法”或”魔法方法”。这些方法是具有特殊含义的,可以提供类的对象行为修改和自定义的能力。比如:__init__、__str__、__repr__等。以下是魔术方法的常见用途:- 构造函数- 对象初始化- 对象销毁- 对象字符串表达式- 对象迭代- 比较对象…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部