我在包含其他<div>
的{{1}}上注册了一个点击处理程序和一个鼠标按下处理程序。默认情况下,内部<div>
设置为<div>
。在visibility: hidden
处理程序中,mousedown
设置为visibility
。
问题是在Safari和Firefox中,点击处理程序在您第一次点击外部 visible
时不会触发。在Chrome中,点击处理程序会触发。
我做了一个简化的测试用例:https://jsbin.com/hequku/edit?html,css,js,output
有趣的是,如果不操纵<div>
属性来操纵visibility
属性,跨浏览器的差异就会消失。
我想弄清楚的是:
opacity
和click
处理程序应该和不应该做的事情?答案 0 :(得分:0)
&#39;知名度:隐藏&#39;适用于尚未或不再有的内容。相关。 所以我猜浏览器不会针对不相关的内容触发点击事件。 尝试使用&#39; display:none&#39;代替。
答案 1 :(得分:0)
这个W3学校链接讨论visibility:hidden
如果仍然占用空间的方式。我之前遇到过这个问题,它与某些浏览器如何将hidden
视为禁用有关;因此,为什么你的活动不会开火。使用opacity
是解决此问题的方法。
我认为visibility:hidden
上没有触发的事件是正确的答案。另外,请查看this问题和答案。