W jQuery muszę wykonać instrukcję if, aby zobaczyć, czy $ nie zawiera klasy „.selected”.
$(".thumbs").hover(function(){
$(this).stop().fadeTo("normal", 1.0);
},function(){
$(this).stop().fadeTo("slow", 0.3);
});
Zasadniczo, gdy ta funkcja jest uruchomiona (po najechaniu myszą) nie chcę wykonywać przenikania, jeśli klasa „.selected” została dołączona do div, będzie to oznaczać, że obraz będzie miał pełne krycie, co oznacza, że jest wybrany. Szukałem w Google bez powodzenia, chociaż jest to proste pytanie, jak używać instrukcji IF ...
.not( ".selected" )
i będzie działać tak samo. Genialne rzeczy.jQuery ma funkcję hasClass (), która zwraca true, jeśli dowolny element w zawiniętym zestawie zawiera określoną klasę
Spójrz na mój przykład użycia
Oto jego kod
EDYTOWAĆ:
to tylko przypuszczenie, ale czy próbujesz osiągnąć coś takiego ?
Kod jQuery jest tutaj-
źródło
Myślę, że autor szukał:
źródło
$(this).not('.selected').length
logicznej wartości, jeśli naprawdę tego chcesz, ale to trochę gadatliwe.Podczas sprawdzania, czy element ma lub nie ma klasy, upewnij się, że przypadkowo nie wstawiłeś kropki w nazwie klasy:
Po długim czasie wpatrywania się w mój kod zrozumiałem, że to zrobiłem. Taka literówka zajęła mi godzinę, żeby dowiedzieć się, co zrobiłem źle. Sprawdź swój kod!
źródło
Umieszczenie znaku „if” w każdej części aktywowania pozwoli ci dynamicznie zmienić wybraną klasę, a aktywowanie będzie nadal działać.
Jako przykład podłączyłem również moduł obsługi kliknięć, aby przełączyć wybraną klasę na kliknięty element. Następnie uruchamiam zdarzenie aktywowania na poprzednim elemencie, aby zniknęło.
źródło
Możesz także używać metod addClass i removeClass do przełączania między elementami, takimi jak karty.
na przykład
źródło
Co powiesz na to, aby zamiast używać if w wydarzeniu, cofniesz powiązanie ze zdarzeniem po zastosowaniu wybranej klasy? Domyślam się, że gdzieś dodajesz klasę do swojego kodu, więc rozpięcie zdarzenia będzie wyglądało tak:
Jedynym minusem jest to, że jeśli kiedykolwiek usuniesz wybraną klasę z elementu, musisz ponownie zasubskrybować ją do zdarzenia hover.
źródło