2012-12-28 10 views
4

Je souhaite avoir deux boutons, un pour masquer div1, et un pour masquer div1, ou pour masquer le bouton lui-même, si le div1 est déjà masqué. voici le code, assez inutile cependant, la cause de mon problème principal est « si » ...Comment détecter si l'élément a été masqué

$('#b > button').click(function(){ 
    $('#div1').fadeOut(400) 
}); 

$('#div2 > button').click(function(){ 
    $('#div1').fadeIn(400) 
}); 
+0

Vous avez des guillemets cassés. –

Répondre

2

Pourquoi ne pas désactiver/activer les boutons?

$('#b > button').click(function(){ 
    $('#div1').fadeOut(400, function() { 
     $(this).prop('disabled', true); 
     $('#div2 > button').prop('disabled', false); 
    }); 
}); 

$('#div2 > button').click(function(){ 
    $('#div1').fadeIn(400, function() { 
     $(this).prop('disabled', true); 
     $('#b > button').prop('disabled', false); 
    }); 
}); 
+1

Ceci est une bien meilleure solution, comme les deux autres suggestions impliquent la lecture du DOM qui est complètement inutile et coûteux en ce qui concerne les performances. Il est beaucoup mieux de maintenir l'état dans votre code et une simple bascule comme celle-ci fonctionne. Il vaut mieux écrire sur le DOM puis lire depuis le DOM. – Valjas

14

FadeOut change simplement la display-none.

Vérifiez si l'affichage n'utilise de jQuery $('selector').css('display')

+13

Ou '.is (": visible ")' –

+0

Pourquoi lire depuis le DOM si ce n'est pas nécessaire? – Valjas

+1

vote pour répondre réellement à la question –

Questions connexes