Tôi có một handler nhấp chuột jquery mà Toggles một trong những yếu tố danh sách:
$(document).on('click', 'ul li', function() {
$(this).toggleClass('expanded');
});
Với nó, tôi có thể thay đổi yếu tố tôi nhấp mở rộng và sụp đổ nó.
Nhưng nếu tôi chỉ muốn một phần tử được mở rộng và đã mở rộng phần tử trước đó để đóng khi tôi nhấp vào một yếu tố khác?
Tôi muốn thực hiện việc này qua cả hai $(this)
(nhấp vào li
) và li.expanded
tới bộ chọn jQuery cho toggleClass('expanded')
.
Giống như (nhưng điều này không làm việc):
$(document).on('click', 'ul li', function() {
$(this, 'ul li.expanded').toggleClass('expanded');
});
Cảm ơn trước!
UPD: Tôi cần chức năng này để hoạt động ngay cả khi không có phần tử nào được mở rộng trước (trên trang bắt đầu) và có thể thu gọn phần tử được mở rộng trước đó khi tôi nhấp vào nó.
nó không hoạt động một cách chính xác nếu sử dụng (không mở rộng mục đầu tiên):
$('li.expanded', this).toggleClass('expanded');
nhưng hoạt động tốt với:
$('li.expanded').toggleClass('expanded');
$(this).toggleClass('expanded');
Hãy nhìn tôi cập nhật câu hỏi –
Tôi nghĩ rằng điều này sẽ chỉ chuyển đổi lớp mở rộng cho các phần tử nhấp, nhưng nó sẽ không loại bỏ lớp này từ các yếu tố .expanded trước – kapantzak
@s. webbandit: kiểm tra đoạn mã được cập nhật ... –