MSPointerDown事件仅在长时间点击时触发,而不是快速点击

时间:2013-05-02 23:00:20

标签: javascript touch internet-explorer-10

我正在编辑网站的顶级导航,以便在像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找出无效的“敲击”和有效的“更长时间”之间的差异......

0 个答案:

没有答案