JQuery - Toggle, Show - Bir sonraki etkisi önce beklemek gerek

1 Cevap php

Ben sitemde 4 linki (alt menü düğmesi) kullanın. Her link DIV etiketi açın.

Bu DIV etiketleri varsayılan istatistik gizlemek olduğunu. (Jquery ile)

 $('div[class*="my_"]').hide();

I bir alt menüyü tıkladıktan sonra sonra i gerekir) div etiketi (gösterir:

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

    	$('div[class*="my_"]').hide(); // hide all DIV if some of them opened before
    	$('div.my_submenu_1').toggle('slow'); 
  });

I diğer DIV önce açılmış olup olmadığını gizlemek için beklemek için sabırlı kadar bu, iyi çalışırlar. Ama im alt menüler arasında çok hızlı bir tıklama sonra bazen jquery önce yeni gösterilen div etiketini HIDE edemez.

I bazı Dealy kullanmak My .. bekleyin?

Bana bir şey önerebilir misiniz?!

1 Cevap

Ben @ Ghommey katılıyorum, ama aynı zamanda tüm diğerleri ilk gizli olduğunu biliyorum böylece gizlemek için geri arama () bir parçası olarak gösteri yapmak isteyebilirsiniz.

 $('div[class^="my_"]').stop().hide(0,function() {
      $('div.my_submenu_1').show('slow');
 });

Muhtemelen biraz daha genel olarak bu yeniden yazabilirsiniz, unutmayın.

 $('a.menu').click( function() {
      var menuID = $(this).attr('href');
      $('div.menu').stop().hide(0,function() {
          $(menuID).show('slow');
      });
      return false;
 });

: HTML gibi görünüyor nerede

 <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>

Bu javascript kapalı olsaydı bağlantısı gerçekten işe sahip avantaj olurdu.