我正在爲新聞頁面設計一個簡單的JQuery函數。基本上這個想法很簡單...我有一個新聞文本div,然後我會爲不同的新聞項目添加各種按鈕。這個想法是,當用戶點擊一個按鈕時,div會在數組中加載正確的新聞文本。 似乎只能在最後一個按鈕上工作,所以我的循環出了問題。我是新手,所以我有點難住!JQuery循環函數僅適用於最後一個元素
HTML代碼
<div id="textbtn0">Btn1</div>
<div id="textbtn1">Btn2</div>
<div id="textbtn2">Btn3</div>
<div id="textbox">This is text</div>
jQuery代碼
jQuery(document).ready(function() {
var newsItems=new Array();
newsItems[0]="News1";
newsItems[1]="News2";
newsItems[2]="News3";
for(a=0;a<newsItems.length;a++){
var num=a;
jQuery("#textbtn"+num).mouseover(function() {
$("#textbtn"+num).css('cursor', 'pointer');
});
$("#textbtn"+num).click(function()
{
$("#textbox").html(newsItems[num]);
});
};
});
可能重複http://stackoverflow.com/questions/ 1331769/access-external-variable-in-loop-from-javascript-closure)並非完全重複,但此問題的解決方案是相同的。 – 2012-08-03 18:02:15
不要在循環中聲明函數。這是一個經常出現在SO上的錯誤。 – 2012-08-03 18:02:38
我知道這不會修復任何東西,但。 1)使用「var a」,2)第二次使用$而不是jQuery,3)不要在結束循環中使用分號「}; – ajax333221 2012-08-03 18:07:04