У меня есть функция, которая удаляет li с активным классом при нажатии кнопки. Когда активный li удаляется, мне нужно перенести активный класс на ближайший li. Оба .next и .prev отлично работают, но не принимают во внимание, если я удаляю первый или последний li. В этом случае либо .next, либо .prev не будет работать.jQuery - Найти ближайшего родственника к элементу списка - следующий или предыдущий
Есть ли другая функция, которую я могу использовать здесь, используя инструкцию if? К сожалению, ближайший не работал для меня.
HTML
<ul>
<li class="active">List item #1</li>
<li>List item #2</li>
<li>List item #3</li>
<li>List item #4</li>
<li>List item #5</li>
</ul>
JS
$('.conversations-wrap').on('click', '.delete-message', function(){
// delete sidebar element
$('.message-details.active').remove();
// change sidebar active
$('.message-details.active').closest('li').addClass('active');
});
Спасибо, что отлично работает. Я надеялся на способ сделать это без утверждения if, но если это единственный способ, я пойду на это. –
@ClintonGreen Я думаю, что нет способа не использовать инструкцию if для проверки последнего элемента или даже первого. Я постараюсь подумать об этом .. но я немного уверен, что нет способа –
Да, я пытался сделать это раньше с помощью оператора If с использованием li: first-of-type, но не мог понять, почему он удаляет выбранный и следующий. Это было из-за того, что я писал активный класс другому, прежде чем удалять другого. Ваш класс .toDelete сохранил этот день. Спасибо –