首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

js 停止事件冒泡 阻止浏览器的默认行为

在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”。...浏览器默认行为: 在form中按回车键就会提交表单;单击鼠标右键就会弹出context menu. a标签 1..停止事件冒泡 JavaScript代码 1 //如果提供了事件对象,则这是一个非IE浏览器...return false; } 但是在使用return false时必须注意: 1、jQuery有自己的事件处理层,也对处理程序做了封装,如果事件处理程序返回false,事件冒泡和浏览器默认事件都会被阻止...2、使用原生javaScript,在事件处理程序中返回false只会阻止浏览器默认行为,而事件冒泡依然存在。 3、浏览器默认行为和事件冒泡是相互独立的。阻止事件冒泡不会影响默认行为,反之亦然。...注意: 有一些浏览器行为是在事件处理程序执行前发生的,也就是说这些默认行为是无法取消的,如:在大部分浏览器上鼠标移到一个超链接上超链接的样式会发生改变,这个动作是发生在focus事件之前的,是focus

5.2K120

浏览器事件

浏览器事件 常用浏览器事件与DOM事件,包括鼠标事件、键盘事件、框架/对象事件、表单事件、剪贴板事件、打印事件、拖动事件、多媒体事件、动画事件、过渡事件。...浏览器事件 加载相关 onbeforeunload: 该事件在即将离开页面(刷新或关闭)时触发。 onload: 文档加载完成后触发。 onunload: 当窗口卸载其内容和资源时触发。...onbeforeunload: 该事件在即将离开页面(刷新或关闭)时触发 onerror: 在加载文档或图像时发生错误。 onhashchange: 该事件在当前URL的锚部分发生修改时触发。...ononline: 该事件浏览器开始在线工作时触发。 onoffline: 该事件浏览器开始离线工作时触发。 onshow: 该事件当元素在上下文菜单显示时触发。...onseeking: 事件在用户开始重新定位视频/音频时触发。 onstalled: 事件浏览器获取媒体数据,但媒体数据不可用时触发。 onsuspend: 事件浏览器读取媒体数据中止时触发。

2.3K20

Js 事件委托(事件代理)

一、概述 事件委托,又叫事件代理。事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。 例子:有三个同事预计会在周一收到快递。...二、为什么是使用事件委托 一般来说,dom需要有事件处理程序,我们都会直接给它设事件处理程序就好了,那如果是很多的dom需要添加事件处理呢?...在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访问dom的次数越多,引起浏览器重绘与重排的次数也就越多,就会延长整个页面的交互就绪时间...,这就是为什么性能优化的主要思想之一就是减少DOM操作的原因;如果要用事件委托,就会将所有的操作放到js程序里面,与dom的操作就只需要交互一次,这样就能大大的减少与dom的交互次数,提高性能; 每个函数都是一个对象...三、事件委托原理 事件委托利用的是事件冒泡原理,将事件绑定到父级元素上,当点击子元素时,通过事件冒泡将事件传递到父级元素。  四、总结: 那什么样的事件可以用事件委托,什么样的事件不可以用呢?

11.4K30

一篇文章搞懂浏览器Js事件循环机制

浏览器事件循环机制 前言 在初次入门学习和使用 JavaScript 的过程中,相信遇到过许多程序执行顺序及结果与预期不一致的问题,在查阅资料的过程中了解到原来是程序的执行有同步与异步之分;与此同时也会看到许多有关概念...但是 JS 是一门单线程语言,同一时间内做一件事。...最初作为服务于浏览器的脚本语言,很多时候都是在与用户交互,这个过程涉及了许多 DOM 的操作,倘若使用多线程,那么就容易出现几个线程同时操作一个 DOM 的问题,那么浏览器此时要以哪一个线程为主呢?...这样一来无疑增加了复杂性,所以 JS 成为了单线程。虽然说多线程处理起来也很高效,但对于当时直接服务于浏览器用户的 JS 来说,尽可能避免过度复杂,能更简单的处理相对好点吧。...I/O 常见微任务 Promise.then catch finally MutationObserver (仅浏览器提供) process.nextTick (仅 node 提供) 三、事件循环机制

84430

JavaScript 事件循环:从起源到浏览器再到 Node.js

本文从三个角度来研究 JavaScript 的事件循环: 为什么是事件循环 事件循环是什么 浏览器与 Node.js事件循环差异 为什么是事件循环 JavaScript 是网景 (Netscape)...所以本质的执行顺序还是: 一次外部事件 所有内部事件 HTML 渲染 回到到 1 浏览器与 Node.js事件循环差异 根据本文开头我们讨论的事件循环起源,很容易理解为什么浏览器与 Node.js...至于内在的差异,有一个很重要的地方是 Node.js (libuv)在最初设计的时候是允许执行多次外部的事件再切换到内部队列的,而浏览器端一次事件循环只允许执行一次外部事件。...关于浏览器与 Node.js事件循环,如果你要问我那边更加简单,那么我肯定会说是 Node.js事件循环更加简单,因为它的多个外部队列是可枚举的并且优先级是固定的。...造成浏览器端与 Node.js事件循环的差异的一个很大的原因在于 。

1.1K30

浏览器visibilitychange事件

项目中,从一个页面进入到另一个页面,然后在这个页面做一些修改后返回到第一个页面,这个时候第一个页面没有刷新只类似tab切换,所以用户的修改未生效。...使用html的浏览器事件 visibilitychange 2. 此事件已经得到了广泛应用,但是一些老版本的浏览器需要加相应的前缀 3....微信内置的浏览器因为没有标签,所以不会触发该事件 手机端直接按Home键回到桌面,也不会触发该事件 PC端浏览器失去焦点也不会触发该事件,但是最小化回到桌面会触发 4....定义有两个只读的document属性: hidden和visibilityStat document.hidden是一个布尔值,简单的表示标签页显示或者隐藏(隐藏包括页面在后台标签页中或者浏览器最小化...document.visibilityState属性更详细,有四个值 =》visible: 页面在前台标签中 =》hidden: 页面在后台标签页或者浏览器最小化

68820
领券