2010-01-06 4 views
2

J'apprends jQuery et c'est mon code à ce jour:Vérification si un DIV est actuellement affiché sur la page

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#login').click(function(){ 
     $('#login-box').fadeIn('fast'); 
    }); 
}); 
</script> 

Il fonctionne, lorsque vous cliquez sur le bouton de connexion du DIV appelé login-box montre sur la page . Ce que je voulais faire était de cliquer sur le bouton de connexion, le login-box DIV disparaitra de la page. Quelle serait la meilleure façon de faire cela? Je pensais:

$(document).ready(function(){ 
    $('#login').click(function(){ 
     if(login-box-is-showing) 
     { 
      $('#login-box').fadeOut('fast'); 
     } else { 
      $('#login-box').fadeIn('fast'); 
     } 
    }); 
}); 

Mais je suis confus à la façon dont je déterminerais si le DIV est montrant ou non. Je vois aussi que jQuery a une fonction bascule, serait-ce mieux?

Merci.

Répondre

3

de Karl Swedberg

jQuery.fn.fadeToggle = function(speed, easing, callback) { 
    return this.animate({opacity: 'toggle'}, speed, easing, callback); 
}; 

Ensuite, vous pouvez le faire:

$("#login").click(function() { 
     $("#login-box").fadeToggle() 
}); 
+0

Génial, bravo. – Matt

+0

Matt, tu devrais changer ta question. La réponse sélectionnée ne répond pas à la question que vous avez posée. – Sampson

+0

+1, mais vous devriez également avoir donné un exemple en utilisant la vitesse, l'accélération et le rappel optionnel (ou définir les valeurs par défaut dans la fonction); –

4

$("#login-box:visible") vous dira s'il est visible, alors que $("#login-box:hidden") vous dira si ce n'est pas le cas. Cependant, un moyen plus facile de gérer cela serait d'utiliser $.toggle() ou même $.slideToggle() si vous voulez un peu d'un effet supplémentaire.

3

Je pense que vous voulez utiliser toggle().

+1

Plus précisément 'fadeToggle()'. – Joel

+0

Merci. bascule est probablement mieux. Bien que comment puis-je faire l'effet s'estomper? Je ne vois aucun paramètre que toggle accepte de choisir quel effet vous voulez? – Matt

+0

~ Joel, fadeToggle() ne semble pas être une fonction jQuery? – Matt

Questions connexes