Я испытываю затруднения, пытаясь отобразить элемент, когда последний элемент в списке. По сути, у меня есть список, который скрывает и показывает кнопку, ища класс <li class="single-data-item has-multi-items">
.
Моя проблема, когда он ищет последний li
в <li class="single-data-item has-multi-items">
<li class="single-data-item has-multi-items">
<ul class="pagnation-2">
<li>3a</li>
<li>3b</li>
<li>3c</li>
</ul>
</li>
JS код:
if($item.is(':last-child')) {
$('#multi-next-multi-item').css('display', 'none');
$('#multi-single-next').css('display', 'block');
}
Проблема в том, чтобы найтипоследние кнопки li и hide / unhide. Он добавляет еще один элемент в список, а затем скрывает / показывает кнопки. Вы можете увидеть это ниже после 3C и добавления другой пули, а затем возобновления нормального.
$('#multi-single-next').click(function() {
let $item;
if(!$('ul.pagnation li.single-data-item.active').length) {
$item = $('ul.pagnation li.single-data-item').first();
}
else {
$prev = $('ul.pagnation li.single-data-item.active');
$item = $prev.next();
if(!$prev.next().length) {
$prev.removeClass('active');
$prev.hide();
return;
}
$prev.removeClass('active');
$prev.hide();
}
$item.addClass('active');
$item.show();
// sub items
$('ul.pagnation-2 li').removeClass('active');
if($item.hasClass('has-multi-items')) {
const $sub = $item.find('ul li').first();
$sub.addClass('active');
$sub.show();
$('#multi-next-multi-item').css('display','block');
$('#multi-single-next').css('display','none');
}
});
$('#multi-next-multi-item').click(function() {
const $item = $('ul.pagnation-2 li.active');
const $next = $item.next();
$item.removeClass('active');
$item.hide();
$next.addClass('active');
$next.show();
if($item.is(':last-child')) {
$('#multi-next-multi-item').css('display', 'none');
$('#multi-single-next').css('display', 'block');
}
});
.single-data-item { display: none; }
ul.pagnation-2 li { display: none; }
#multi-next-multi-item { display: none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="multi-single-next" class="button">Single next</button>
<button id="multi-next-multi-item" class="button">Multi item</button>
<ul class="pagnation">
<li class="single-data-item"><div class="data-item">1</div></li>
<li class="single-data-item"><div class="data-item">2</div></li>
<li class="single-data-item has-multi-items">
<ul class="pagnation-2">
<li>3a</li>
<li>3b</li>
<li>3c</li>
</ul>
</li>
<li class="single-data-item"><div class="data-item">4</div></li>
<li class="single-data-item"><div class="data-item">5</div></li>
</ul>