我似乎找不到答案,我花了一段时间才将它重新制作成独立的小提琴/笔,但我终于有了。
我正在研究使用D3绘制和处理svg图形的Vaadin应用程序。在某一点上,屏幕上有svg visibility:hidden
。
在所有浏览器中都能完美找到。
这些隐藏的元素具有单击和鼠标悬停事件,可以在所有浏览器中再次找到它们。但是在firefox版本34中,当隐藏的元素仍处于隐藏状态时,它们仍会触发其事件(单击和鼠标悬停)。
更好地说明:隐藏按钮时,不应将其mouseover事件触发,而在按钮可见时应将其触发。这就是它在除Firefox 34、35 beta和36开发版以外的所有浏览器中的工作方式。在Firefox 31中工作正常。
我怀疑这是D3中的错误,但想要第二意见或让其他人指出我的错误。值得注意的是,display:none
该元素的设置在Firefox 34及更高版本中适用,但是我不认为问题出在那
我创建了一个jsbin来演示代码,其中有两个橙色图标,visibility:hidden
如果您将鼠标悬停在带有chrome的隐藏元素上,则没有一个橙色图标(您可能需要禁用才能看到它)。但使用Firefox 34时,事件触发了。这是jsBin
知道为什么会触发吗?我猜是D3问题或firefox错误,但是我想把它固定下来,以修正我的代码以帮助解决其他方面的问题。
谢谢
这只是Firefox中的错误。如果您报告,我会解决。
给定指针事件的特定值,我们可以确切地说出元素是否应该接收事件。如果我们不知道指针事件具有什么值,则该元素可能会或可能不会收到指针事件。这就是规范要说的全部。这里没有歧义。
请注意,firefox错误仅影响<image>
元素。如果将图像替换为<rect>
元素,即使在Firefox中也应看到正确的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句