编程论坛's Archiver

hu5210898 发表于 2008-3-8 18:49

我的问题是一个代码逻辑问题,请大家帮我看看,谢谢!!

我写了一个简单的图片自动播放功能,代码在下面
下面是html里的代码:
<html>
<head><title>this is javascript</title>
<script type="text/javascript" src="scripts/photoes.js"></script>
</head>
<body>       
<h1>Photo</h1>
        <ul>
        <li><a href="" onclick="return ShowPic();">播放</a></li>
        </ul>
        <img id="photoes" src="image/4.jpg" />
</body>
</html>
下面是photoes.js外部文件里面的代码:
var i=0;
function ShowPic(){
        Show();
        return false;//为什么只return一次就可以了??这里不懂??
}
function Show(){
        var img_x=new Array("image/1.jpg","image/2.jpg","image/3.jpg","image/4.jpg","image/5.jpg");
        var photos=document.getElementById("photoes");
        photos.setAttribute("src",img_x[i]);
        i++;
        if(i>4)i=0;
        setTimeout("Show()",2000);
}
不懂的就是JS里的那段return false;我觉得只有递归循环第一次的时候有调用他;但是如果只调用一次,那为什么不会出现错误勒,因为如果onclick没有得到返回的false,那麽他的默认行为就会发生。就会在另一个窗口显示图片。

lmhllr 发表于 2008-3-8 22:36

你就点一次它就循环运行了,一个false就够了....

hu5210898 发表于 2008-3-9 17:56

哦!!
我明白了因为那个return(false)只是针对onclick(点击事件),当点击链接时如果没有返回一个false那麽他的默认行为就会发生,也就是说有点击就要有一个 false 返回,用以屏蔽默认行为,而整个过程我们只点击了一次,所以只要一个 return(false);你说对吗??
谢谢lmhllr。
实在太感谢了!!!!

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.