Mam następujący kod, emulując kliknięcie lewym lub prawym klawiszem w dół zdarzeń. Jest stosowany jako część galerii pokaz slajdów:Jak ustalić, czy element jest ostatnim lub pierwszym dzieckiem rodzica w javascript/jquery?
$(document).keydown(function (e) {
if(e.keyCode == 37) { // left
$(".thumb-selected").prev().trigger('click');
}
else if(e.keyCode == 39) { // right
$("thumb-selected").next().trigger('click');
}
});
Zasadniczo Znalazło następnego lub poprzedniego rodzeństwa (w zależności od wciśniętego klawisza) i wywołać zdarzenie click, które będą z kolei wyświetli odpowiedni obraz w galerii. Te obrazy są przechowywane na nieuporządkowanej liście.
Miejsce, w którym jestem zaskoczony, to to, że po wybraniu pierwszego lub ostatniego obrazu i kliknięciu lewego lub prawego przycisku (odpowiednio), chcę, aby uzyskać następne zdjęcie na drugim końcu listy obrazów. Na przykład, jeśli pierwsze zdjęcie zostanie wybrane i naciśnięta zostanie lewa strzałka; biorąc pod uwagę, że nie ma poprzedniego obrazu (lub li elementu), otrzyma on ostatni obraz z listy. W ten sposób klawisze nigdy nie tracą funkcjonalności.
Czy w jquery znajduje się funkcja, która sprawdzi, czy obecny element jest pierwszym lub ostatnim dzieckiem jego jednostki nadrzędnej, lub zwróci indeks względem swojego elementu nadrzędnego, aby móc porównać jego indeks z rozmiarem()) jego elementu macierzystego?
Można zwrócić się do obiektu nadrzędnego co pierwsze/ostatnie dzieci były i porównać z bieżącego elementu. Brak pomysłu na wydajność. –
Wydajność nie jest problemem. Z tego, co przeczytałem, niemożliwe jest porównanie dwóch elementów selektora (jako obiektów). Mogę spróbować porównać id, ale nie id są ustawione na elementach listy, które są automatycznie generowane przez skrypt. Próbuję zmodyfikować skrypt tak, jak to tylko możliwe. – Prusprus