我一直在试验 jquery 并遇到了一个问题。http://javascript.nicklewers.co.uk/nav/
在“Android”选项卡上,我已将其设置为,如果您单击一次,则会出现子菜单,但双击时会出现主要内容。
现在的问题是:双击涉及两次单击,这涉及到子菜单的快速打开和关闭,这看起来很糟糕。我该如何防止这种情况?
我一直在试验 jquery 并遇到了一个问题。http://javascript.nicklewers.co.uk/nav/
在“Android”选项卡上,我已将其设置为,如果您单击一次,则会出现子菜单,但双击时会出现主要内容。
现在的问题是:双击涉及两次单击,这涉及到子菜单的快速打开和关闭,这看起来很糟糕。我该如何防止这种情况?
试试这个(使用计时器知道是单击还是双击):
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;
});
在显示/隐藏子菜单之前尝试延迟。使用 JS 可以使用该setTimeout()
函数来完成。
$('#android').dblclick(function(){
$('.content, #subnav').toggle();
});
为什么要同时切换内容和子菜单?删除它并不能解决问题,但我认为它不应该存在。