js图片切换问题,高手来看看

<html><bodyonLoad="nav_ch()"><script>functionnav_ch(){varx=document.getElementById("n... <html>
<body onLoad="nav_ch()">
<script>
function nav_ch()
{
var x=document.getElementById("nav").getElementsByTagName("img");
var a=new Array("images/img1.jpg","images/img2.jpg","images/img3.jpg");
var b=new Array("images/img1_1.jpg","images/img2_1.jpg","images/img3_1.jpg");
for(var i=0;i<x.length;i++)
{
x[i].onmouseover=function(){
this.src=b[i]}
x[i].onmouseout=function(){
this.src=a[i]}
}
}
</script>
<div id="nav">
<img src="images/img1.jpg">
<img src="images/img2.jpg">
<img src="images/img3.jpg">
</div>
</body>
</html>

结果显示a[i],b[i]没定义,怎么回事??
展开
 我来答
ajax_2003
2009-05-25 · TA获得超过4995个赞
知道大有可为答主
回答量:2628
采纳率:0%
帮助的人:2475万
展开全部
<html>
<body onLoad="nav_ch()">
<script>
function nav_ch()
{
var x = document.getElementById("nav").getElementsByTagName("img");
var a = new Array("images/img1.jpg","images/img2.jpg","images/img3.jpg");
var b = new Array("images/img1_1.jpg","images/img2_1.jpg","images/img3_1.jpg");

for(var i=0;i<x.length;i++)
{
// 这样修改一下. 因为你是要动态添加
// 事件的处理函数, 这是有一个问题, 就是
// 在javascript中, 事件处理函数的内容真正
// 的执行时间是在他被触发的时候, 而这是你的
// i其实是等于循环后的最大值, 这就导致你的图片始终
// 是数组中的最后一张(我表达能力有限, 是在抱歉
// 建议你还是多看看书吧, javascript权威指南, 我
// 推荐你看一看)
x[i].mouseover_img = b[i];
x[i].onmouseover = function(){
this.src = this.mouseover_img;
}

x[i].onmouseout_img = a[i];
x[i].onmouseout = function(){
this.src = this.onmouseout_img
}
}
}
</script>
<div id="nav">
<img src="images/img1.jpg">
<img src="images/img2.jpg">
<img src="images/img3.jpg">
</div>
</body>
</html>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式