在我的網站上,我有一個最初未填充的無序列表。在頁面加載後,我使用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");
});
它現在,但爲什麼會出現這種情況?爲什麼它認爲那裏有一個額外的li?
HTML代碼:從AJAX調用返回
<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代碼:
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
Click事件處理程序不應該在所有的工作,因爲你的HTML不包含ID元素'不下來,arrow'帶班'選擇-li'元素。請張貼HTML的相關部分。 –
可以顯示處理ajax響應並創建列表項元素的代碼嗎? –