На моем веб-сайте у меня есть неупорядоченный список, который изначально был незаселен. После загрузки страницы я использую jquery и ajax для вызова php-страницы, загружающей данные из базы данных. Затем он возвращает эти данные в вызов ajax, чтобы он мог создать кучу элементов списка и добавить их в неупорядоченный список.JQuery .next() не работает как ожидалось
Каждый из этих элементов списка может быть выбран. Когда они выбраны, я добавляю к ним класс под названием «selected-li», который просто подчеркивает текст. У меня также есть стрелки для перемещения между элементами списка (то есть стрелкой вверх и стрелкой вниз). Я подумал, что следующее будет работать ...
$("#down-arrow").click(function(){
$(".selected-li").next().addClass("selected-li");
});
... и это совсем не так, как ожидалось. Я должен дважды щелкнуть стрелку вниз, чтобы класс был добавлен к следующему элементу. По какой-то причине он считает, что между каждыми отображаемыми элементами есть невидимый элемент списка.
Как исправить, я сделал следующее:
$("#down-arrow").click(function(){
$(".selected-li").next().next().addClass("selected-li");
});
Он работает сейчас, но почему это происходит? Почему он думает, что там есть лишний ли?
HTML код:
<div id="up-down-arrows">
<img id="up-arrow" height="35px" width="35px" src="/../images/circle_arrow_up.png"></img><br><br><br>
<img id="down-arrow" height="35px" width="35px" src="/../images/circle_arrow_down.png"></img>
</div>
<div id="article-list"><ul id="unordered-list"></ul></div>
код Javascript по возвращении из Ajax вызова:
function(data){
for(var i = 0; i < data.length; i++){
title = data[i]["name"];
$("#unordered-list").append('<li title="' + title + '">' + title + '</li><br>');
}
}
Можете ли вы поделиться HTML также – jammykam
обработчик события нажатия не должна работать на всех, потому что ваш HTML не содержит элемент с идентификатором 'вниз arrow' не элементы с классом' выбранным-li'. Пожалуйста, разместите соответствующую часть своего HTML. –
Можете ли вы показать код, который обрабатывает ответ ajax и создает элементы элемента списка? –