【发布时间】:2016-06-30 06:51:48
【问题描述】:
我在包含其他<div>s 的<div> 上注册了一个单击处理程序和一个鼠标按下处理程序。默认情况下,内部<div> 设置为visibility: hidden。在mousedown 处理程序中,visibility 设置为visible。
问题在于,在 Safari 和 Firefox 中,单击处理程序不会在您第一次单击 outer <div> 时触发。在 Chrome 中,点击处理程序会触发。
我做了一个简化的测试用例:https://jsbin.com/hequku/edit?html,css,js,output
有趣的是,如果不是操纵visibility 属性而是操纵opacity 属性,跨浏览器的差异就会消失。
我想弄清楚的是:
- 这在浏览器之间是否会有所不同?如果不是,符合规范的行为是什么?
- 我是否遗漏了一些关于在
click和mousedown处理程序中应该和不应该做的事情?
【问题讨论】:
-
在 FF 中为我工作,确保在 DOM 准备就绪时触发绑定函数,并且当您尝试绑定这些事件处理程序时,附加事件处理程序的元素实际上在 DOM 中。
-
@Arbel 所以当您使用提供的示例时,点击事件会触发吗?你能分享你正在使用的 Firefox 的版本/平台吗?
-
我在 FF 44.0.2/Win 8.1 上运行了测试
标签: javascript css google-chrome firefox safari