-4

我一直在试验 jquery 并遇到了一个问题。http://javascript.nicklewers.co.uk/nav/
在“Android”选项卡上,我已将其设置为,如果您单击一次,则会出现子菜单,但双击时会出现主要内容。

现在的问题是:双击涉及两次单击,这涉及到子菜单的快速打开和关闭,这看起来很糟糕。我该如何防止这种情况?

4

3 回答 3

3

试试这个(使用计时器知道是单击还是双击):

alreadyclicked=false;
$('#android').bind('click',function(){
    var el=$(this);
    if (alreadyclicked)
    {
        alreadyclicked=false; // reset
        clearTimeout(alreadyclickedTimeout); // prevent this from happening
        // do what needs to happen on double click. 
    }
    else
    {
        alreadyclicked=true;
        alreadyclickedTimeout=setTimeout(function(){
            alreadyclicked=false; // reset when it happens
            // do what needs to happen on single click. 
            // use el instead of $(this) because $(this) is 
            // no longer the element
        },300); // <-- dblclick tolerance here
    }
    return false;
});
于 2013-05-02T22:20:28.467 回答
0

在显示/隐藏子菜单之前尝试延迟。使用 JS 可以使用该setTimeout()函数来完成。

于 2013-05-02T22:21:08.013 回答
0
$('#android').dblclick(function(){
    $('.content, #subnav').toggle();
});

为什么要同时切换内容和子菜单?删除它并不能解决问题,但我认为它不应该存在。

于 2013-05-02T22:23:40.130 回答