У меня есть массив статей, которые я хочу отобразить. Я хочу, чтобы нажимать на следующую стрелку, чтобы перейти к следующей статье или предыдущей стрелке, чтобы перейти к предыдущей статье. Когда я добираюсь до последнего элемента массива, я хочу скрыть следующую стрелку и наоборот для первого элемента.Как перемещаться вперед и назад по массиву?
$(function() {
var i = 0
$(multibubbles[i]).appendTo('#page');
$(multibubbles[i]).children('#next-arrow').show();
$(multibubbles[i]).children('#next-arrow').click(function (e) {
$(multibubbles[i]).hide();
i++;
$(multibubbles[i]).appendTo('#page');
if (i == multibubbles.length - 1) {
$(multibubbles[i]).children('#next-arrow').hide();
}
else {
$(multibubbles[i]).children('#next-arrow').show();
}
$(multibubbles[i]).children('#prev-arrow').show();
})
$(multibubbles[i]).children('#prev-arrow').click(function (e) {
$(multibubbles[i]).hide();
i--
$(multibubbles[i]).appendTo('#page');
if (i == 0) {
$(multibubbles[i]).children('#prev-arrow').hide();
}
else {
$(multibubbles[i]).children('#prev-arrow').show();
}
$(multibubbles[i]).children('#next-arrow').show();
})
})
Когда я нажмите на стрелку в первый раз, когда он идет к следующей статье штрафа, но если я нажимаю снова он ничего не делает, потому что я не могу получить его, чтобы выйти из первой функции мыши. Я попытался использовать 'return', но это тоже не сработало. Пожалуйста, помогите мне.
где вы меняете свои переплеты? они не привязаны повторно только потому, что изменяется 'i', так как функция выполняется только один раз. где-то в вашем коде вам нужно вернуться к привязке слушателей к новым объектам – jbr3zy
Пожалуйста, используйте точки с запятой! –
Когда элемент перемещается в DOM, все события не связаны с этим элементом. Чтобы сохранить события, вы можете использовать jQuery 'clone (true, true)' в сочетании с добавлением. Подобно 'var $ clone = $ (element) .clone (true, true); $ (Элемент) .remove(); $ Clone.appendTo ('targetElement') '; Не зная вашей точной разметки DOM, я бы не смог сказать, применяется ли это в вашем случае или нет. Можете ли вы создать [jsFiddle] (http://jsFiddle.net), чтобы показать проблему? – Nope