OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

用纯CSS停止冒泡和阻止浏览器默认行为及事件响应,达到禁用(disable)的目的


分享到
分类 编程技巧   关键字 前端   发布 ourjs  1470191486193
注意 转载须保留原文链接,译文链接,作者译者等信息。  
JavaScript有一个preventDefault方法, 他可用以来取消事件的默认动作。比如取消打开链接,选择文本或拖放等。

event.preventDefault()
该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。

这种方法可以阻止当前元素的浏览器默认行为,但并不阻止事件被父级及document响应。如果想彻底取消事件,则可使用stopPropagation

event.stopPropagation()


该方法将停止事件的传播,阻止它被分派到其他 Document 节点。在事件传播的任何阶段都可以调用它。注意,虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点。


这两种是在JS中的常用取消事件的方法,但是其实还有一种用纯css就能实现取消事件响应的方法,pointer-events,使用起来更加简单,它可以:

1 阻止用户的点击动作产生任何效果

2 阻止缺省鼠标指针的显示

3 阻止CSS里的hover和active状态的变化触发事件

4 阻止JavaScript点击动作触发的事件


比如以下CSS就顺起到将禁用的按钮灰掉的效果

.disabled {
    pointer-events: none;
    cursor: default;
    opacity: 0.6;
}


这种方法明显比js代码更加灵活,可惜ie9不支持。详细的浏览器支持可查看这个表格




社区评论 ( Beta版 )
  • #0 皮习关 1471421670393

    默认事件可以保留吗? 比如input

  • #1 郭异右 1475051248101

    兼容性是一方面。 其次,这个pointer-events: none; 的实际效果是该dom元素不接收鼠标事件了,也就意味着hover, cursor都会失效, 且点击事件会穿透到下层, 与disable有很大的不同。

OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 44个 Javascript 变态题解析 (上\下)
  2. JavaScript中该如何安排后台任务
  3. 三星拟收购NodeJS主要赞助商Joyent
  4. JavaScript的 Event Loop 模型
  5. Python 之父谈 Python 的未来
  6. Redis和Memcached的区别-从源码解读Reids的实现原理
  7. 乌云和漏洞盒子停业整顿—可能与国内“白帽子”黑客圈高度关注的“袁炜事件”有关
  8. 使用Bootstrap、Electron和JavaScript开发桌面应用
  9. AirJD-简单好用的免费建站工具

 相关阅读 - 编程技巧
  1. Node.js框架之express
  2. 纽约时报使用Html5 WebRTC记录访问者IP地址
  3. 在Debian/Ubuntu上面安装升级nginx到最新版
  4. 编写高性能HTML网页应用
  5. 在Debian(Respberry PI)上安装FTP服务器
  6. 使用Google Analytics跟踪捕获JavaScript,AngularJS,jQuery的在线错误和异常
  7. Node.JS开发者常犯的10个错误(一)
  8. CSS3实现的响应式字体:自适应视图窗口大小的新单位
  9. 更快地定位DOM(HTML)元素的方法(Rails)
  10. Go语言实例教程基础语法:数组操作篇(二)

 关键字 - 前端
  1. 我们抛弃了AngularJS:单页面应用的5大缺陷
  2. CSS3实现的响应式字体:自适应视图窗口大小的新单位
  3. 用纯css改变下拉列表select框的默认样式
  4. Animate.css让添加CSS动画像喝水一样容易
  5. 5个经典的前端面试问题
  6. AngularJS在大型单页面应用中的性能优化(一)
  7. 我被问得最多的十个JavaScript前端面试问题
  8. 用纯CSS停止冒泡和阻止浏览器默认行为及事件响应,达到禁用(disable)的目的
  9. 10个值得前端收藏的CSS3动效库(工具)
  10. 前端开发工程师岗 招聘

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号