103 votes

jQuery - Si element a class, faites ceci! Aidez-moi, s'il vous plaît

J'ai besoin d'un script jQuery qui verra si un élément a une classe spécifique et fera une action comme changer de position.

C’est la voie à suivre, mais je ne pense pas que cela fonctionnera.

 $("a.contact").toggle(function() {
    $("#contact").animate({
        right: '0'
    }, 2000);

    if ($("#about").hasClass("opened")) {
        $("#about").animate({
            right: -700 + "px"
        }, 2000);
    }
}, function() {
    $("#contact").animate({
        right: -700 + "px"
    }, 2000);
});
 

178voto

Ken Redler Points 15204

Tout d'abord, il vous manque des parenthèses dans votre conditionnel:

 if ( $("#about").hasClass("opened") ) {
  $("#about").animate({right: -700 +"px"}, 2000)};
 

Mais vous pouvez aussi simplifier ceci pour:

 $('#about.opened').animate(...);
 

Si #about n'a pas la classe, elle ne s'animera pas.

Si le problème vient de l'animation elle-même, nous aurions besoin d'en savoir plus sur le positionnement de votre élément (absolu? Absolu dans le parent relatif? Le parent a-t-il une présentation?)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X