Вы должны вести счет.Таким образом, у вас будет отдельная переменная, которая проверяет, что это первый клик.Если это первый клик, мы выбираем .eq(0)
или .first()
.Если нет, то всегда выбирайте .next()
.
Давайте рассмотрим, как это будет работать на практике, на вашем примере.HTML останется прежним, а JS изменится:
var alreadyClicked = false;
var selectedElement;
$('ul li').on('click', function() {
if (alreadyClicked) {
selectedElement = selectedElement.next();
} else {
alreadyClicked = true;
selectedElement = $('ul li').first();
}
selectedElement.css('color', 'red');
});
<ul>
<li>New York</li>
<li>Los Angeles</li>
<li>Chicago</li>
</ul>
<script src="https://code.jquery.com/jquery-git.js"></script>
Как видите, мы ведем подсчет внутри логического значения alreadyClicked
.Если значение равно false, мы выберем первый элемент, в противном случае мы всегда переместимся на единицу.
Кроме того, мы можем улучшить код, удалив полностью alreadyClicked
и просто проверив, является ли selectedElement
уже заполнено.