Vérifiez mon exemple ici: http://timkjaerlange.com/foobar/test.htmlAppliquer la classe à l'élément si div est caché ou visible
J'essaie actuellement d'appliquer une classe à un en-tête en fonction de la visibilité d'un div sur la page.
Ceci est mon balisage:
<a href="#">Toggle visibility!</a>
<div></div>
<h1 class="one">If the box is hidden this headline should be italic.</h1>
<h1 class="two">If the box is visible this headline should be italic.</h1>
Et ce sont les classes qui sont en jeu:
.hideIt {
display: none;
}
.ifHidden {
font-style: italic;
}
.ifVisible {
font-weight: italic;
}
jQuery ajoute le comportement:
$('a').click(function() {
$('div').toggleClass('hideIt');
if ($('div').is(':hidden')) {
$('h1.one').addClass('ifHidden');
$('h1.one').removeClass('ifVisible')
}
if ($('div').is(':visible')) {
$('h1.two').addClass('ifVisible');
$('h1.two').removeClass('ifHidden');
}
});
Initialement, il fonctionne, quand Je clique sur l'ancre, h1.one est en italique, mais quand je clique à nouveau, rien ne se passe. Je suis un peu un Javascript, jQuery n00b, donc n'importe quelle indication de ce qui pourrait être mal est fortement appréciée!
fixe la chose CSS et changé le jQuery pour les suivants:.. $ ('a') cliquez sur (function() { \t $ ('div') toggleClass ('HideIt'); \t si (. $ ('div') est (': caché')) { \t \t $ ('h1.one') addClass ('ifHidden'); \t \t $ ('h1.two') removeClass (.. ifVisible '); \t \t \t \t} \t if ($ (' div ') est. (': visible ')) { \t \t $ ('h1.two'). AddClass ('ifVisible'); \t \t $ ('h1.one'). RemoveClass ('ifHidden'); \t \t \t \t \t}); Fonctionne maintenant, merci de m'avoir aidé! – timkl