【发布时间】:2014-04-05 06:48:35
【问题描述】:
我有一个带有 1、2、3、4 等按钮的幻灯片。我还定义了一个包含 4 个图像 url 的数组。当点击按钮时,它会调用具体对应的url。
<div id="slideshow">
<div id="source"><img src="images/blue.jpg">
<ul id="controller">
<li class="button">1</li>
<li class="button">2</li>
<li class="button">3</li>
<li class="button">4</li>
</ul>
</div>
</div>
Javascript:
var button=document.getElementsByClassName("button")
var image=document.getElementsByTagName("img")[0]
var sources=new Array("images/blue.jpg","images/red.jpg","images/yellow.jpg","images/green.jpg");
for (var i=0;i<sources.length;i++){
button[i].onclick=function(){
image.src=sources[i]
}
}
但是当我点击按钮时,sources[i] 总是返回 undefined。
【问题讨论】:
-
在您的情况下,
i变量无法传递给事件处理程序(onclick)。您必须将其值存储在适当的 DOM 元素中
标签: javascript variables closures