日期:2014-05-16  浏览次数:20369 次

javascript return语句问题
DOM编程艺术上的图片库问题 ,红色部分是疑惑点,谢谢指教.......

<!DOCTYPE html>
<html >
 <head>
  <title>泰山风情</title>
 </head>
<body>
 
<ul id="imagegallery">
<li><a href="images/wuyue.jpg">图片1</a></li>
<li><a href="images/shuiku.jpg">图片2</a></li>
<li><a href="images/pubu.jpg">图片3</a></li>
<li><a href="images/song.jpg">图片4</a></li>
<li><a href="images/jianzhu.jpg">图片5</a></li>
<li><a href="images/yunhai.jpg">图片6</a></li>
</ul>
 
 <img id="placeholder" src="images/wuyue.jpg" alt="XXX" />
 
<script type="text/javascript" >
function showPic(whichpic) {
 if(!document.getElementById) return false;
 var source=whichpic.getAttribute("href");
 placeholder=document.getElementById("placeholder");
 placeholder.setAttribute("src",source);
 return false;
}
function prepare() {
var gallery = document.getElementById("imagegallery");
var links = gallery.getElementsByTagName("a");
for(var i=0;i<links.length;i++) {
links[i].onclick = function() {
//showPic(this); 我疑惑的就是为什么没有这个语句却仍然调用了showPic(函数),难道是下面return的作用???
return showPic(this); //阻止链接的默认行为
}
}
}
window.onload = prepare;
</script>
</body>
</html>



------解决方案--------------------
你return showPic(this)
 肯定会执行 showPic();
------解决方案--------------------
return showPic(this); 
执行showPic之后,还会为 prepare返回showPic所return 的false

比如
JScript code
     function a(){
        alert('a');
     }
     function b(){
        alert('b');
        return 123;
     }     
     alert( a() ) // 先a 再undefined 因为 a()没有返回值
     alert( b() ) // 先b 再123 b()返回了123