我希望标题足够准确,以描绘我所面临的问题。
我有一个div
(尝试了多种不同的东西:a
,span
,button
,都面临同样的问题),点击它时onclick事件将会即使将调用css div:active
,也不要开火。
这似乎是由于div:active
我设置top: 6px
以进行"下推"有点效果。效果看起来不错,只是有时,如果你点击元素的顶部,或者出于某种原因在中心,div会出现"移出"的方式,而不是调用onclick事件。
我认为一个好的解决方案是将元素包装在另一个div中,然后将onclick事件附加到该div。令我惊讶的是,点击还没有向按钮的顶部或中间点火。
如果我删除了top: 6px
底部的div:active
,则按钮工作正常,它只是没有相同的"推入"效果。
我发现它很难解释,所以这里有一个截图(蓝色区域是onclick赢得的地方):
并且这里是初始尝试的代码:http://jsfiddle.net/RS5Q5/6/
以及将onclick侦听器移到外面的代码:http://jsfiddle.net/RS5Q5/4/(除了图片上的蓝色部分外,onclick将在div中的任何地方触发)
还值得注意的是,中间和底部的蓝色区域在firefox中看起来很好,但不是chrome或safari。顶部的蓝色区域仍然是个问题。
对这种奇怪行为的任何修复或解释?任何指导都将不胜感激。谢谢。
答案 0 :(得分:2)
可能是因为在点击事件期间内容移动时浏览器会感到困惑。这通常是因为用户在释放之前按下鼠标按钮然后拖动,但我想如果内容本身在点击位置下移动则也是如此。
如果您使用mousedown / mouseup事件而不是单击?
会发生什么