2010-06-14 3 views
0

J'essaie de créer un bouton pour montrer/cacher un div ci-dessous, tout fonctionne bien, je suis juste aux prises avec le dernier bit!jQuery .toggle() ne fonctionne pas comme prévu avec la deuxième fonction?

J'ai besoin de distinguer wether c'est un spectacle ou une action cacher pour que je puisse passer la variable ailleurs, voici ce que j'ai ..

$(this).find('.hide-close').click(
      function() { 
       $(this).siblings('.dragbox-content').toggle(function() { 

        alert($(this).parent().attr("id") + ' Show'); 

        },function() { 

        alert($(this).parent().attr("id") + ' Hide'); 

        } 

       ); 

      }) 
     .end() 
     }); 

Si utilisez le code suivant, en prenant la deuxième fonction au sein bascule (), Ça marche?! Mais je n'ai pas de variable show/hide.

$(this).find('.hide-close').click(
      function() { 
       $(this).siblings('.dragbox-content').toggle(function() { 

        alert($(this).parent().attr("id") + ' Show'); 

        } 

       ); 

      }) 
     .end() 
     }); 

Merci d'avance pour toute aide, j'espère que c'est quelque chose de vraiment simple que je ne peux pas voir! :)

Répondre

1

Vous pouvez utiliser $(this).is(":visible") à l'intérieur de la fonction pour vérifier si elle est visible ou non.

+0

Fantastique :) pour tester j'ai utilisé ceci .. if ($ (this) .is (": hidden")) {alert ($ (this) .parent(). Attr ("id") + 'est maintenant caché.'); } Fonctionnement parfait, merci pour votre aide! – Christopher

0

La fonction de bascule jQuery permet d'assigner des fonctions à exécuter lorsqu'un événement (clic de souris) se produit. Pour réellement déclencher un événement, vous devrez appeler la fonction de clic. Utilisez cette partie de code pour affecter la fonction à exécuter lors d'un clic.

$('.dragbox-content').toggle(function() { 
     alert($(this).parent().attr("id") + ' Show'); 
    },function() { 
     alert($(this).parent().attr("id") + ' Hide'); 
    } 
); 

$(this).find('.hide-close').click(
function() { 
    $(this).siblings('.dragbox-content').click(); 
}) 
.end(); 

et ceci pour déclencher l'événement.

Questions connexes