html 冒泡事件拦截,Js 冒泡事件阻止
一. 事件目标
现在,事件处理程序中的变量event保存着事件对象。而 event.target 属性保存着产生事件的目标元素。这个属性是 DOM API 中规定的,但是没有被所有浏览器实现 。jQuery对这个事件对象进行了必要的扩大,从而在任何浏览器中都能够使用这个属性。通过.target,可以肯定DOM中首先接收到事件的元素(即实际被单击的元素)。而且,我们知道this援用的是处理事件的DOM元素,所以可以编写以下代码:
$(document).ready(function(){
$('#switcher').click(function(event){
$('#switcher .button').toggleClass('hidden');
})
})
$(document).ready(function(){
$('#switcher').click(function(event){
if(event.target==this){
$('#switcher .button').toggleClass('hidden');
}
})
})
此时的代码确保了被单击的元素是
二. 停止事件传播
事件对象还提供了一个 .stopPropagation() 方法,该方法可以完全禁止事件冒泡。与 .target 类似,这个方法也是一种纯 JavaScript 特性,但在跨浏览器的环境中则没法安全地使用 。不过,只要我们通过jQuery来注册所有的事件处理程序,就能够放心肠使用这个方法。
下面,我们会删除刚才添加的检查语句 event.target == this,并在按钮的单击处理程序中添加一些代码:
$(document).ready(function(){
$('#switcher .button').click(funtion(event){
//……
event.stopPropagation();
})
})
同之前一样,需要为用作单击处理程序的函数添加一个参数,以便访问事件对象。然后,通过简单地调用 event.stopPropagation() 就能够避免其他所有 DOM 元素响应这个事件。这样一来,单击按钮的事件会被按钮处理,而且只会被按钮处理。单击样式转换器的其他地方则可以折叠和扩大全部区域。
三. 默许操作
如果我们把单击事件处理程序注册到一个锚元素,而不是一个外层的
如果我们不希望履行这类默许操作,那末在事件对象上调用 .stopPropagation() 方法也杯水车薪,由于默许操作不是在正常的事件传播流中产生的。在这类情况下,.preventDefault() 方法则可以在触发默许操作之前终止事件 。
提示 当在事件的环境中完成了某些验证以后,通常会用到 .preventDefault()。例如,在表单提交期间,我们会对用户是不是填写了必填字段进行检查,如果用户没有填写相应字段,那末就需要禁止默许操作。我们将在第8章详细讨论表单验证。
事件传播和默许操作是相互独立的两套机制,在两者任何一方产生时,都可以终止另外一方。如果想要同时停止事件传播和默许操作,可以在事件处理程序中返回 false,这是对在事件对象上同时调用 .stopPropagation() 和 .preventDefault() 的一种简写方式。
html 冒泡事件拦截,Js 冒泡事件阻止相关推荐
- js onfocus事件、js onblur事件
onfocus事件: html元素获取到焦点所触发的事件,通常用于 <input>输入框标签,<select>下拉列表标签,以及<a>超链接标签,不是所有html元 ...
- JS的事件对象和事件冒泡
2019独角兽企业重金招聘Python工程师标准>>> 1.事件对象 js的事件对象中保存了当前被触发事件的一些相关的属性信息,如事件源.事件发生时的鼠标位置.事件按键等. 事件对象 ...
- html页面滚动条监听事件,滚动条的scroll事件
在vb中,滚动条的scroll 事件和change 事件的区别scroll和change的区别为:指代不同.用法不同.侧重点不同 一.指代不同 scroll:滚屏,滚动. change:变更,变革. ...
- java响应鼠标滚轮事件_鼠标滚轮事件MouseWheel
其实在大多数浏览器(IE6, IE7, IE8, Opera 10+, Safari 5+,Chrome)中,都提供了 "mousewheel" 事件.但杯具的是 Firefox ...
- java冒泡函数解释,JS DOM操作 函数 事件 阻止事件冒泡
一 函数 1.字符串函数 s.tolowerCase( ): -- 变小写 s.toupperCase( ): -- 变大写 s.substr( 2 , 8 ): -- 截取 ...
- js添加事件、移除事件、阻止冒泡、阻止浏览器默认行为等写法(兼容IE/FF/CHROME) 转载...
js添加事件.移除事件.阻止冒泡.阻止浏览器默认行为等写法(兼容IE/FF/CHROME) 网上有关这方面的代码比较多而乱,这里整理一下并加以改进. 添加事件 01 var addEvent = ...
- Js、Vue阻止事件冒泡行为
目录 Js阻止事件冒泡行为 Vue阻止事件冒泡行为 以下是Js阻止事件冒泡行为 event.stopPropagation() <!DOCTYPE html> <html lang= ...
- html 冒泡事件拦截,JavaScript阻止事件冒泡与事件捕获
1.事件冒泡 在一个对象上触发某类事件,如onclick事件等,在其祖先节点上也会依次触发该事件. 事件冒泡 依次输出:a.div.body 注意:不是所有的事件都能冒泡.blur.focus.loa ...
- js 停止事件冒泡 阻止浏览器的默认行为
在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到"停止事件冒泡"和"阻止浏览器默认行为". 浏览器默认行为: 在form中按回车键就会提交表单:单击鼠标 ...
最新文章
- android读取excel数据库,Android 读取Excel数据并保存在本地数据库
- mysql 多配置文件实例安装_mysql安装之多实例多配置文件安装
- SQL 交集 差集 并集 笛卡尔积 应用实例
- 使用swipemenulistview实现列表的左右滑动
- 同济大学计算机学院徐老师,第十八届同济大学程序设计竞赛暨高校网络友谊赛圆满落幕...
- 探秘大型B2C网站如何实现高性能可伸缩架构技术
- 为什么计算机连接u盘不显示内存不足,U盘明明有空间却提醒空间不足怎么解决...
- redis的安装,配置
- win7配置本地ftp服务器
- 贪心算法之田忌赛马(超详细)
- oracle 建表 lob cache,创建表规范 lob 字段
- FGFA(Flow-Guided Feature Aggregation for Video Object Detection)论文详读
- 二. 再熟悉 Markdown 标准语法
- 三个小孩去饭店点菜用计算机算钱,去饭店别点这三个菜!点菜“潜规则”你该知道(组图)...
- 虚拟机虚拟磁盘文件格式转换
- 视频剪辑 电脑录屏助手
- 国产蓝牙耳机哪款值得入手?高性价比游戏低延迟蓝牙耳机推荐
- 通用的WAN协议配置
- 【均衡器】LS均衡器,DEF均衡器以及LMMSE均衡器的误码率性能对比仿真
- JVM垃圾收集之——怎样判定一个对象是不是垃圾
热门文章
- html侧滑菜单mui,mui侧滑菜单点击含有mui-action-menu类的控件无法实现侧滑
- linux 下邮件服务器,Linux 下搭建Postfix邮件服务器
- python自然语言处理书籍_精通Python自然语言处理pdf
- linux 直接映射 页表大小,linux 启动过程临时页表到底映射了多大内存?
- Spyder:Python中机器学习的强大武器
- c# 赋值运算符_C#程序演示赋值运算符的示例
- 页面分栏LayoutInflater
- 玩玩机器学习4——TensorFlow基础之激活函数
- win10雷电3接口驱动_技嘉推出B550 主板首发雷电3接口:40Gbps速率、Intel主控
- JQuery Datatables辅助函数