Mam kliknij obsługi jquery który przełącza jeden z elementów listy:
$(document).on('click', 'ul li', function() {
$(this).toggleClass('expanded');
});
z nim mogę zmienić elementu Kliknąłem rozwijania i zwijania go.
Ale co zrobić, jeśli chcę, aby tylko jeden element został rozszerzony, a poprzednio rozwinięty element został zamknięty, gdy kliknę na inny?
chcę zrobić ten przechodzącego zarówno $(this)
(kliknięciu li
) i li.expanded
jQuery selektor dla toggleClass('expanded')
.
Coś podobnego (ale to nie działa):
$(document).on('click', 'ul li', function() {
$(this, 'ul li.expanded').toggleClass('expanded');
});
Z góry dzięki!
UPD: muszę tę funkcję do pracy, nawet jeśli nie został rozszerzony elementy wcześniej (na początku strony) i być w stanie zwinąć wcześniej rozszerzoną elementu po kliknięciu na nim.
to nie działa prawidłowo, jeśli zastosowanie (nie rozszerza pierwszą pozycję):
$('li.expanded', this).toggleClass('expanded');
ale działa dobrze z:
$('li.expanded').toggleClass('expanded');
$(this).toggleClass('expanded');
Proszę spojrzeć na moje pytanie –
zaktualizowanego myślę, że będzie to tylko przełącznik klasy rozszerzonej dla elementu kliknięty, ale nie będzie usunąć tę klasę z poprzedniego .expanded elementu – kapantzak
@s. webbandit: sprawdź zaktualizowany fragment ... –