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

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标准库random模块处理随机数

    Python标准库中的random模块提供了生成随机数的函数,它含有的函数简单易用,可满足绝大部分随机数生成的需求。在本文中,我们将介绍random模块的主要函数及其使用,同时给出一些示例作为参考。 random模块函数概览 random模块中含有许多可用于生成随机数的函数,常用的包括: random(): 生成0到1之间的随机浮点数。 randint(a,…

    python 2023年6月3日
    00
  • python的time模块和datetime模块实例解析

    Python的time模块和datetime模块实例解析 Python中的time和datetime模块,都是用来处理日期和时间的模块。time模块主要是用于程序中对时间的计算等操作;datetime模块则是用于更加复杂的时间操作,例如时区转换等。本文将详细讲解time和datetime模块在Python中的应用和方法。 time模块 time模块是Pyth…

    python 2023年6月2日
    00
  • Jupyter Notebook内使用argparse报错的解决方案

    针对Jupyter Notebook中使用argparse报错的问题,可以采用以下的解决方案: 问题描述 在Jupyter Notebook中使用argparse时,可能会出现以下类似的报错信息: usage: ipykernel_launcher.py [-h] [–input INPUT] [–output OUTPUT] ipykernel_lau…

    python 2023年6月3日
    00
  • Python实现封装打包自己写的代码,被python import

    下面将详细讲解“Python实现封装打包自己写的代码,被python import”的完整攻略: 1. 创建Python项目 创建一个Python项目,包含需要封装的代码文件和一个空的__init__.py文件。 代码目录结构如下: myproject/ __init__.py mymodule.py mymodule.py文件中,我们编写需要封装的代码。具…

    python 2023年5月31日
    00
  • 浅谈Python接口对json串的处理方法

    Python是一种流行的编程语言,可以方便地处理JSON数据。在接口开发中,我们经常需要处理JSON数据。本文将详细讲解Python接口对JSON串的处理方法,包括JSON串的解析、生成和格式化,以及使用requests库发送HTTP请求和处理HTTP响应的示例代码。 JSON串的解析 在Python中,我们可以使用json模块解析JSON串。以下是一个示例…

    python 2023年5月15日
    00
  • Python局部函数及用法详解(含nonlocal关键字)

    Python局部函数及用法详解(含nonlocal关键字) 什么是局部函数? 在Python中,函数可以作为一个独立的对象返回或者被作为参数传递给其他函数,并可以在函数内部定义另一个函数,这个在Python中被称之为局部函数。例如: def outer(): def inner(): print("This is a inner function&…

    python 2023年6月5日
    00
  • 利用python程序生成word和PDF文档的方法

    生成Word和PDF文档是Python程序员常见的需求之一。本文将为您提供几种生成Word和PDF文档的方法,希望对您有所帮助。 一、使用python-docx库生成Word文档 使用Python中的python-docx库,可以轻松生成Word文档。python-docx库提供了比较完善的API,可以设置文本样式、添加图片、插入表格等功能。 下面是一个样例…

    python 2023年6月5日
    00
  • 在主流系统之上安装Pygame的方法

    在主流系统之上安装Pygame的方法可以分为以下几步: 安装Python解释器 在安装Pygame之前,需要先安装Python解释器。可以从官网 https://www.python.org/downloads/ 下载对应操作系统的Python安装包。安装时需要注意勾选“Add Python to PATH”选项,这样才能在命令行中使用python命令。 安…

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