jQuery - Jeśli element ma klasę, zrób to

111

Potrzebuję skryptu jQuery, który sprawdzi, czy jakikolwiek element ma określoną klasę i wykona akcję, taką jak zmiana pozycji.

To jest sposób, ale nie sądzę, żeby to zadziałało.

$("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);
});
Adrian Florescu
źródło
Cóż, powiedziałeś, że chcesz wiedzieć, czy „dowolny” element ma określoną klasę, ale twój selektor w instrukcji if jest skierowany tylko na element, który ma identyfikator „about”. Czy to celowo? Zasadniczo próbując dowiedzieć się, z czym masz problem. Czy wypróbowałeś jeszcze powyższy kod, aby sprawdzić, czy działa?
Adrian
Głosowanie w dół ze względu na fakt, że nie sądzisz, że to zadziała? Może najpierw spróbujesz?!? Jeśli to nie zadziała, powiedz nam SZCZEGÓLNIE, co spodziewasz się zobaczyć i co faktycznie widziałeś.
ken
@ken: owszem powinien był, ale skoro jest tylko skromnym noobem, może bardziej odpowiedni byłby rodzaj szturchnięcia we właściwym kierunku? Nawiasem mówiąc, @Florescu, jeśli jesteś ciekawy, czy coś zadziała, ale nie możesz tego zrozumieć, wyszydzaj problem na jsfiddle.net i umieść link do niego w swoim pytaniu.
treeface
@treeface: to jest szturchnięcie (zamiast nazywać go skromnym noobem ); jeśli zaktualizuje pytanie do ... no wiesz, faktycznie zawiera pytanie, to usunę mój głos przeciw. Złe pytanie (lub brak pytania) = głos negatywny, aby inni nie musieli tracić czasu na nieistotne kwestie, takie jak ten.
ken

Odpowiedzi:

193

Po pierwsze, w warunku brakuje niektórych nawiasów:

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

Ale możesz też uprościć to, aby:

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

Jeśli #aboutnie ma openedklasy, nie będzie animowana.

Jeśli problem dotyczy samej animacji, musielibyśmy wiedzieć więcej o pozycjonowaniu elementu (bezwzględne? Bezwzględne wewnątrz względnego elementu nadrzędnego? Czy element nadrzędny ma układ?)

Ken Redler
źródło