- event.preventDefault()
- event.stopPropagation()
该方法将停止事件的传播,阻止它被分派到其他 Document 节点。在事件传播的任何阶段都可以调用它。注意,虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点。
这两种是在 JS 中的常用取消事件的方法,但是其实还有一种用纯 CSS 就能实现取消事件响应的方法,pointer-events,使用起来更加简单,它可以:
1 阻止用户的点击动作产生任何效果
2 阻止缺省鼠标指针的显示
3 阻止 CSS 里的 hover 和 active 状态的变化触发事件
4 阻止 JavaScript 点击动作触发的事件
比如以下 CSS 就顺起到将禁用的按钮灰掉的效果
这种方法明显比 js 代码更加灵活,可惜 ie9 不支持。详细的浏览器支持可查看这个 表格
- .disabled {
- pointer-events: none;
- cursor: default;
- opacity: 0.6;
- }
来源: