jQuery - Se l'elemento ha una classe, fallo


111

Ho bisogno di uno script jQuery che vedrà se qualche elemento ha una classe specifica e farà un'azione come cambiare posizione.

Questo è il modo, ma non credo che funzionerà.

$("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);
});

Bene, hai detto che vuoi sapere se "qualsiasi" elemento ha una certa classe, ma il tuo selettore nella tua istruzione if sta prendendo di mira solo l'elemento che ha un id di "about", è apposta? Fondamentalmente cercando di capire con cosa stai avendo un problema. Hai anche provato il codice sopra per vedere se funziona?
Adrian

Votare la domanda perché non pensi che funzionerà? Che ne dici di provarlo prima?!? Se non funziona, dicci SPECIFICAMENTE cosa ti aspetti di vedere e cosa hai effettivamente visto.
ken

@ken: in effetti avrebbe dovuto, ma dato che è solo un umile noob, forse sarebbe stato più appropriato un gentile spintone nella giusta direzione? Per inciso, @Florescu, se sei curioso di sapere se qualcosa funzionerà ma non riesci a capirlo, prendi in giro il problema su jsfiddle.net e collegalo ad esso nella tua domanda.
treeface

@treeface: questo è il nudge (invece di chiamarlo un umile noob ); se aggiorna la domanda a ... sai, includi effettivamente una domanda, allora rimuoverò il mio voto negativo. Cattiva domanda (o mancanza di una domanda) = voto negativo, in modo che gli altri non debbano sprecare il loro tempo su un non-problema come questo.
ken

Risposte:


193

Innanzitutto, ti mancano alcune parentesi nel condizionale:

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

Ma puoi anche semplificarlo per:

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

Se #aboutnon ha la openedclasse, non si animerà.

Se il problema è con l'animazione stessa, avremmo bisogno di saperne di più sul posizionamento del tuo elemento (assoluto? Assoluto all'interno del genitore relativo? Il genitore ha un layout?)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.