我正在为新闻页面设计一个简单的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