最近,我正在改进和使网站响应式的工作中,其中一个问题是有许多元素可点击,使用了混合CSS和jQuery效果来实现悬停状态。
首先,我更喜欢所有这些悬停状态都由CSS控制,但我遇到的主要问题是,在这些悬停状态下,某些元素会改变display
和visibility
CSS属性。我进行了一些阅读,显然如果是这种情况,在触摸屏iOS设备上,第一次“触摸”会强制启用悬停状态,然后需要第二次点击才能真正点击该元素。
我正在尝试寻找不需要大量标记和样式更改的解决方案。最好使用jQuery / JavaScript修复。
我已经尝试过以下方法:
$(document).ready(function() {
$('a').on('click touchend', function(e) {
var el = $(this);
var link = el.attr('href');
window.location = link;
});
});
然而,当用户按住可点击元素并拖动页面进行滚动时,这会出现问题。当他们在拖动后松开手指时,
window.location
仍然被改变。如果需要的话,我稍后会添加一个jsFiddle。
提前感谢您。
编辑:
这是一个显示问题的jsFiddle。 http://jsfiddle.net/0bj3uxap/4/ 如果您点击其中一个块,您将看到它显示悬停状态,然后您需要再次点击才能实际触发单击事件。
当元素被隐藏,然后悬停状态显示元素时,似乎会发生这种情况。