JS传播事件、取消事件默认行为、阻止事件传播详解
这篇文章主要介绍了JS传播事件、取消事件默认行为、阻止事件传播,通过事件处理程序的返回值 调用顺序讲解了详细的过程,对JS感兴趣的朋友可以参考下本篇文章
1.事件处理程序的返回值
通常情况下,返回值false就是告诉浏览器不要执行这个事件相关的默认操作。例如,表单提交按钮的onclick事件处理程序能通过返回false阻止浏览器提交表单,再如a标签的onclick事件处理程序通过返回false阻止跳转href页面。类似地,如果用户输入不合适的字符,输入域上的onkeypress事件处理程序能通过返回false来过滤键盘输入。
事件处理程序的返回值只对通过属性注册的处理程序才有意义。
2.调用顺序
文档元素或其他对象可以为指定事件类型注册多个事件处理程序。当适当的事件发生时,浏览器必须按照如下规则调用所有的事件处理程序:
通过设置对象属性或HTML属性注册的处理程序一直优先调用。
使用addEventListener()注册的处理程序按照它们的注册顺序调用。
使用attachEvent()注册的处理程序可能按照任何顺序调用,所以代码不应该依赖于调用顺序
3.事件传播
在调用在目标元素上注册的事件处理函数后,大部分事件会“冒泡”到DOM树根。调用目标的父元素的事件处理程序,然后调用在目标的祖父元素上注册的事件处理程序。这会一直到Document对象,最后到达Window对象。
发生在文档元素上的大部分事件都会冒泡,值得注意的例外是focus、blur和scroll事件。文档元素的load事件会冒泡,但它会在Document对象上停止冒泡而不会传播到Window对象。只有当整个文档都加载完毕时才会触发Window对象的load事件。
4.取消事件默认行为、阻止事件传播
在支持addEventListener()的浏览器中,可以通过调用事件对象的preventDefault()方法取消事件的默认操作。IE9之前的IE中,可以通过设置事件对象的returnValue属性为false达到同样的效果。下面一段代码是结合三种技术取消事件:
function cancelHandler(event){ var event=event||window.event;//兼容IE //取消事件相关的默认行为 if(event.preventDefault) //标准技术 event.preventDefault(); if(event.returnValue) //兼容IE9之前的IE event.returnValue=false; return false; //用于处理使用对象属性注册的处理程序 }
取消事件相关的默认操作只是事件取消中的一种,我们也能取消事件传播。在支持addEventListener()的浏览器中,可以调用事件对象的stopPropagation()方法以阻止事件的继续传播。如果在同一对象上定义了其他处理程序,剩下的处理程序将依旧被调用,但调用stopPropagation()之后任何其他对象上的事件处理程序将不会被调用。
IE9之前的IE不支持stopPropagation()方法,而是设置事件对象cancelBubble属性为true来实现阻止事件进一步传播。
好了以上就是小编为大家整理的全部内容啦,希望对大家有所帮助~
相关推荐:
以上是JS传播事件、取消事件默认行为、阻止事件传播详解的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

win11默认的窗口重叠非常烦人,因此很多朋友想要取消层叠窗口,但是不知道怎么取消,其实我们只要用相关软件就可以了。win11窗口重叠层叠窗口怎么取消方法一:通过任务栏取消1、win11没有自带的取消功能,因此我们需要下载一个“startallback”2、下载完成后,“解压”该压缩包,解压完成后,打开文件夹,运行图示安装程序完成安装。。3、安装完成后,需要打开“控制面板”,然后把右上角“查看方式”改为“大图标”。4、这样就可以在其中找到“startallback”了,点击打开它,进入左边“任务

为了保护屏幕内容或省电我们经常会开启屏保,但是发现每次屏保退出后都要重新输入密码锁非常麻烦,那么win11屏幕锁怎么取消呢,其实在屏保设置里就能关闭。win11屏幕锁怎么取消:1、首先我们右键桌面空白处,打开“个性化”2、然后在右边找到并打开“锁屏界面”3、随后打开最下面相关设置里的“屏幕保护程序”4、最后勾选“在恢复时显示登录屏幕”并确定保存就能取消屏幕锁了。

用户在使用美团下单时可以选择不想要的订单取消,有很多用户不知道美团取消订单怎么取消,用户可以在我的页面中点击进入订单待收货选择需要取消的订单点击取消。美团取消订单怎么取消1、首先在美团我的页面中点击进入订单待收货。2、然后点击进入需要取消的订单。3、点击取消订单。4、点击确定取消订单。5、最后根据个人情况选择取消原因后点击提交即可。

许多用户在体验芒果TV这款视频软件时,为了享受更多的影视资源和更全面的服务,都会选择开通会员。而在使用芒果TV会员服务的过程中,部分用户会选择开启自动续费功能享受优惠,以确保不会错过任何精彩内容。然而,当用户不再需要会员服务或希望更改支付方式时,取消自动续费功能就是保护财产安全非常重要的一件事,究竟该如何取消芒果tv的自动续费服务呢,想要了解的用户们就快来跟着本文一起详细了解一下吧!芒果tv怎么取消会员自动续费?1、首先进入芒果tv手机APP里面的【我的】,再选择【VIP会员】。2、然后找到【管

1、耳朵符号是语音听筒模式,首先我们打开微信。2、点击右下角的我。3、点击设置。4、找到聊天点击进入。5、取消勾选使用听筒播放语音即可。

1、在手机设置中点击【iTunesStore与AppStore】选项。2、点击【查看AppleID】,然后输入登录密码。3、进入【帐户设权置】界面,点击【付款信息】。4、将付款方式勾选为【无】,点击【完成】。完成后,返回微信界面,此时将会收到【解约成功通知】的信息,微信就再也不会自动扣除费用。

可以在我的黄金VIP会员界面打开管理自动续费功能进行取消。教程适用型号:华为P50系统:HarmonyOS2.0版本:爱奇艺12.1.0解析1打开手机上的爱奇艺app,接着进入我的页面。2然后在我的页面点击上方的黄金VIP会员,接着点击管理自动续费选项。3在弹出的窗口中点击取消自动续费,不感兴趣,继续取消。4最后确认关闭自动续费并点击我知道了,残忍拒绝即可。补充:苹果手机爱奇艺怎么取消自动续费功能1打开手机上的设置,接着在设置界面点击顶部的【AppleID】。2在AppleID界面点击【订阅】选

升级了win101909系统后,可能有的小伙伴们会有想要取消自己电脑锁屏密码的需求。如果不知道应该怎么做的话,小编觉得我们可以在电脑的设置窗口中找到账户选项,具体方法一起来看看吧。win101909如何取消锁屏密码:1、首先按Win+I打开设置界面。2、然后找到账户--登录选项,再进行如图设置即可。win101909取消开机密码登录的方法:1、在运行中执行regedit打开注册表,定位至如下路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\Cu
