暂时不允许JQuery切换

时间:2010-06-10 18:59:17

标签: jquery

当用户选择链接时,我有一个切换的菜单。该菜单附加不同显示和隐藏动画,我希望在动画运行时阻止切换。如果链接被快速点击两次(例如,如果用户快速点击两次链接,下一次点击将触发相同的操作),则以下代码段可用,但会翻转切换的状态:

<a href="" id="button">Menu</a>
<div id="menu">...</a>

<script>
$("#button").toggle(
    function (e) { 
      if $("#menu").is(":animated")) return false;
      $("#menu").show("drop", {}, "slow"); 
    }, 
    function (e) { 
      if ("#menu").is(":animated")) return false;
      $("#menu").hide("bounce", {}, "slow"); 
    }
);
</script>

如何防止切换状态切换?

感谢。

1 个答案:

答案 0 :(得分:2)

使用.click(),并使用:not():animated和{{检查click处理程序中内部元素的状态3}}选择器,如下:

$("#button").click(function () { 
  var menu = $("#menu:not(:animated)");
  if(menu.is(":visible")) menu.hide("bounce", {}, "slow");
  else menu.show("drop", {}, "slow"); 
});

这不依赖于状态,这有点简单:)