1

我正在编辑网站的顶部导航,以便在 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等等MSGestureHold。我什至不确定我会console.log找出无效的“点击”和有效的“更长的点击”之间的区别......

4

0 回答 0