我正在编辑网站的顶级导航,以便在像Surface Pro这样的IE10 / Windows8平板电脑上工作。在最初的迭代中,我刚刚将aria-haspopup="true"
添加到悬停元素并且效果非常好 - 只需点击一下即可显示隐藏的菜单,第二次点按即可显示:hover
效果,第三次点按即可导航至URL。但是,客户希望第二次点击导航到URL(你知道,就像它可以在除了Windows之外的任何其他设备上工作,哈哈),所以我在那里弹出一个JQuery脚本,希望只是导航到目的地就像它应该的那样。
以下是网址:http://www.urlgone.com/3a55ce/
我非常接近它的工作,但最奇怪的事情正在发生。如果点击该项目,它将进入悬停状态(白色文本)而不是单击。但如果你按住水龙头一点点,它就可以了!到底是怎么回事?这是我的代码:
$(document).ready(function(){
if (window.navigator.msPointerEnabled) {
$('#nav a').on("MSPointerDown", function(event){
window.location = $(this).attr('href');
return false;
})
}
});
客户已确认它在Surface平板电脑上正在执行此操作,并且我惊讶地能够在运行Microsoft Windows模拟器的虚拟Windows 8环境中复制该问题。
有什么想法吗?我一直在阅读这里的MS文档http://msdn.microsoft.com/en-us/library/ie/hh673557(v=vs.85).aspx但是根据我的理解,MSPointerDown
是一个保护伞事件,应该涵盖那里列出的任何其他手势 - MSGestureTap
,{ {1}}等等。我甚至不确定我会MSGestureHold
找出无效的“敲击”和有效的“更长时间”之间的差异......