Php Jquery-切换,显示-需要等待下一个效果

Php Jquery-切换,显示-需要等待下一个效果,php,jquery,Php,Jquery,我在我的网站上使用4个链接(子菜单按钮)。每个链接打开一个DIV标签 此DIV标记默认状态为hide。(使用jquery) 单击子菜单后,我将显示()我需要的div标记: $('a#submenu_1').click( function() { $('div[class*="my_"]').hide(); // hide all DIV if some of them opened before $('div.my_submenu_1').toggle('slo

我在我的网站上使用4个链接(子菜单按钮)。每个链接打开一个DIV标签

此DIV标记默认状态为hide。(使用jquery)

单击子菜单后,我将显示()我需要的div标记:

$('a#submenu_1').click( function() {

        $('div[class*="my_"]').hide(); // hide all DIV if some of them opened before
        $('div.my_submenu_1').toggle('slow'); 
  });
这是很好的工作,直到我耐心地等待隐藏,如果其他DIV打开之前。但是,如果在子菜单之间单击过快,那么有时候jquery在显示新菜单之前无法隐藏div标记

我的朋友,我用了一些药。。等等


你能给我提个建议吗

我同意@Ghommey的说法,但您可能还希望将该节目作为要隐藏的回调()的一部分,这样您就知道所有其他节目都是先隐藏的

 $('div[class^="my_"]').stop().hide(0,function() {
      $('div.my_submenu_1').show('slow');
 });
请注意,您可能可以更一般地重写它

 $('a.menu').click( function() {
      var menuID = $(this).attr('href');
      $('div.menu').stop().hide(0,function() {
          $(menuID).show('slow');
      });
      return false;
 });
您的HTML看起来像:

 <a href="#my_menu_1" class="menu">Menu 1</a>
 <a href="#my_menu_2" class="menu">Menu 2</a>
 ...

 <div id="my_menu_1" class="menu">...</div>
 <div id="my_menu_2" class="menu">...</div>

...
...
...

这样做的好处是,如果javascript被关闭,链接就可以正常工作。

如果您快速单击,会出现问题,不是吗?此外,
.stop().hide()是实例我正在使用stop().hide()--只是我把这个节目放到了回调中,这样它就不会运行,除非动画(hide)完成……除非你是说“正常”速度。我已将其更改为使用一个数字值(0)——该值应尽可能快。这有问题。链接之间快速切换,显示功能冻结,仅显示部分div。。。
 <a href="#my_menu_1" class="menu">Menu 1</a>
 <a href="#my_menu_2" class="menu">Menu 2</a>
 ...

 <div id="my_menu_1" class="menu">...</div>
 <div id="my_menu_2" class="menu">...</div>