Код, который я пробовал,
jQuery(function($) {
var visible =3;
$('#sc li:gt('+(visible - 1)+')').hide();
$('#more').click(function() {
var Index = $('#sc').children('li:visible:last').index(),
nextIndex = currentIndex + (visible + 1);
$('#sc li').hide();
$('ul li:lt(' + nextIndex + '):gt(' + Index + ')').show();
});
});
Я хочу ограничить элементы, но когда я нажал больше, ничего не произойдет.
Основная проблема заключается в том, что вы определяете переменную Index
и используете currentIndex
в следующей строке, что, конечно же, вызывает ошибку, иначе ваш код должен работать. Однако вы можете кэшировать элементы и использовать .slice()
который повышает эффективность кода.
jQuery(function ($) {
var visible = 3,
$li = $('#sc li');
// hiding the elements
$li.slice(visible).hide();
$('#more').on('click', function () {
// getting index of the last visible element
var ci = $li.filter(':visible:last').index();
// slicing and showing next should-be-visible elements
$li.hide().slice(++ci, ci+visible).show();
});
});