JavaScript 取消默认事件、阻止事件冒泡的方法

2023-11-17

首先页面上创建一个a标签:<a href="#" οnclick="do_Click()">默认事件</a>

然后给body加一个点击事件:

document.body.οnclick=function(){
          alert('body');
      }

当我点击这个a标签的时候会有两个我们不想发生的事情:

1.浏览器地址尾部出现 # 号,这是a标签的默认事件。

2.alert('body'); 被执行了,这是事件冒泡。

 

针对这两个有专门的控制方法:preventDefault、stopPropagation,为兼容还要用到 returnValue、cancelBubble


<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GBK">
        <style>
        	*{
        		padding:0;
        		margin:0;
        	}
        	
        </style>
        </head>
        <body>
        	<a href="#" onclick="do_Click()">默认事件</a>
        </body>
<script>
	function do_Click(e){
		alert('do_Click')
		var e = e || window.event;
		//阻止默认事件[兼容处理]
		if(e.preventDefault){
			e.preventDefault();
		}else{
			e.returnValue=false;
		}
		//阻止事件冒泡[兼容处理]
		if(e.stopPropagation){
			e.stopPropagation();
		}else{
			e.cancelBubble=true;
		}
	}	
	
	document.body.onclick=function(){
		alert('body');
	}
	
	
</script>
</html>

经过如此处理后,浏览器地址就不会出现#号了(取消了默认事件),同时body的点击事件也被阻止了(阻止了事件冒泡)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 取消默认事件、阻止事件冒泡的方法 的相关文章

随机推荐

  • 华为OD机试真题-核酸检测人员安排【2023Q1】【JAVA、Python、C++】

    题目描述 在系统 网络均正常的情况下组织核酸采样员和志愿者对人群进行核酸检测筛查 每名采样员的效率不同 采样效率为N人 小时 由于外界变化 采样员的效率会以M人 小时为粒度发生变化 M为采样效率浮动粒度 M N 10 输入保证N 10 的结
  • java对象clone()方法

    java赋值是复制对象引用 如果我们想要得到一个对象的副本 使用赋值操作是无法达到目的的 Test public void testassign Person p1 new Person p1 setAge 31 p1 setName Pe
  • 单目标跟踪算法评价指标

    中心位置误差 center location error CLE 中心位置误差为预测的目标中心和真实的目标中心之间的欧氏距离 以像素为单位 xa ya 表示预测目标中心位置 xb yb 表示真实的目标中心位置 距离精度 diatance p
  • html 编辑框取消默认样式,html5中如何更改、去掉input type默认样式

    1 如何去掉input type date 默认样式 HTML代码 选择日期 选择时间 选择星期 选择月份 目前WebKit下有如下9个伪元素可以改变日期控件的UI webkit datetime edit 控制编辑区域的 webkit d
  • 微信小程序商城项目实战(第三篇:商品列表)

    实现商品列表 利用组件实现 Tabs 组件界面编写
  • JavaWeb会话技术

    1 Cookie对象 cookie是一种会话技术 它用于将会话过程中的数据保存到用户的浏览器中 从而使浏览器和服务器可以更好的地进行数据交互 创建Serlet 创建一个chapter05项目 创建一个自己喜欢的包 在该包中编写一个为Last
  • Linux——netstat

    netstat是一个功能很强大的网络信息统计工具 它可以打印本地网卡接口上的全部连接 路由表信息 网卡接口信息等 我们主要利用的是上述功能中的第一个 即显示TCP连接及其状态信息 毕竟 要获得路由表信息和网卡接口信息 我们可以使用输出内容更
  • Vue项目配置文件(.npmrc、.env、. cz-config.js、commitlint.config.js)

    一 npmrc npmrc 文件位于项目的根目录 即 node modules 和 package json 的兄弟 作为npm运行时的配置文件 registry为npm包注册源地址 legacy peer deps忽略相同modules的
  • django+vue项目搭建,前后端通信打通,

    文章目录 django 环境搭建 1 创建django骨架项目 2 创建应用 3 试着启动项目 验证环境OK 4 基础配置 admin py settings py 前端项目搭建 1 安装vue cli 2 创建前端项目 3 创建时候选什么
  • javascript 纯前端实现汉字转拼音 —— pinyin-pro 库

    一般实现汉字转拼音的功能都是请求服务端 api 实现 而对于一些比较简单的需求 我们可以通过一个 npm 工具包 pinyin pro 纯前端实现中文汉字转拼音的功能 特色功能 支持汉字 词语 句子多种格式输入获取 获取拼音 获取声母 获取
  • vue-quill-editor设置字体大小

    项目中需要用到富文本编辑器 用的Vue 所以选择了vue quill editor这个富文本编辑器 发现字体只有几种大小可以选择 满足不了产品的需求 研究了半天终于改好了 主要是需要更改配置文件 以及对应的CSS和js文件 editor v
  • Open judge程序设计A_分支结构

    include
  • 题目0081-新工号系统

    新工号系统 题目描述 3020年空间通信集团的员工突破20亿人 即将遇到现有工号不够的窘境 现在你负责调研新工号系统 继承历史传统 新的工号系统由小写英文字母a z和数字0 9两部分构成 新工号由一段英文字母开头 之后跟随一段数字 比如 a
  • 因果2-潜在结果框架

    因果2 潜在结果框架 摘要 从因果到统计 我们需要走多久 上一章我们从因果和统计学的关系出发 初步了解了一个经典因果框架 潜在结果框架 今天我们继续学习这个框架 图1是上周我们留下的 吃药治头疼 的数据表格 我们如何从该表格中求出平均处理效
  • 深入探索 Dubbo 的 AOT 技术及其技术演进历程

    引言 随着云原生和微服务架构的兴起 高性能和低延迟成为了开发者们的关注重点 在 Java 生态系统中 Spring 和 Dubbo 是两个备受青睐的框架 它们为开发者提供了强大的功能和灵活性 为了进一步提升性能 Dubbo 团队引入了 AO
  • 开发工具之 Snipaste(超级截图工具)

    snipaste工具是一款开源免费的超级截图工具 这里小编强烈推荐此工具的使用 前言 当你使用ALT TAB习惯性的来回切屏的时候 其实在这个过程中 仔细想想是不是比较累 这样子做久了很容易导致疲劳 所以小编强推贴图功能 好了废话不多说 直
  • 5 insanely great books about mathematics you should read.

    本文转载至 http wp kjro se 2013 12 27 5 insanely great books about mathematics you should read 翻译请参考 http blog jobbole com 55
  • Android Studio 无法打开虚拟机

    Emulator PANIC Cannot find AVD system path Please define ANDROID SDK ROOT 刚安装好Android Studio 却发现无法打开虚拟机 报错信息为 Emulator P
  • Kafka:主题创建、分区修改查看、生产者、消费者

    文章目录 Kafka后台操作 1 主题 2 分区 3 生产者 4 消费者组 Kafka后台操作 1 主题 1 创建主题 bin kafka topics sh create bootstrap server hadoop102 9092 r
  • JavaScript 取消默认事件、阻止事件冒泡的方法

    首先页面上创建一个a标签 a href 默认事件 a 然后给body加一个点击事件 document body nclick function alert body 当我点击这个a标签的时候会有两个我们不想发生的事情 1 浏览器地址尾部出现