《JS DOM编程艺术》第二版第六章的例子,为什么照着书上的写会出错?

JS代码部分:

<script>
            function prepareGallery()
            {
                if(!document.getElementById("gallery"))return false;
                if(!document.getElementsByTagName)return false;
                var gallery=document.getElementById("gallery");
                var links=gallery.getElementsByTagName("a");
                for(i=0;i<links.length;i++)
                {
                    links[i].onclick=function()
                    {
                        showpic(this);
                        return false;
                    }
                }
            }
            
            function showpic(x)
            {
                var changepic=document.getElementById("placeholder");
                var source=x.getAttribute("href");
                changepic.setAttribute("src",source);
                var description=document.getElementById("description");
                var text=x.firstChild.nodeValue;
                description.firstChild.nodeValue=text;
            }
        </script>

HTML部分:

<h1>标题</h1>
        <ul id="gallery">
            <li>
                <a href="img/摆渡.jpg" title="摆渡人" >摆渡人</a> 
            </li>
            <li>
                <a href="img/城市.png" title="洛阳城" >洛阳城</a>
            </li>
            <li>
                <a href="img/守卫.jpg" title="地狱口" >地狱口</a>
            </li>
            <li>
                <a href="img/海怪.jpg" title="海上龙" >海上龙</a>
            </li>
        </ul>
        <p id="description">选择一张图片</p>
        <img id="placeholder" src="img/透明.png" alt="占位图"/>

该例是要实现点击链接,在当前页面打开图片。然而按照书上的代码写完后,变成了在新页面打开图片。
请问错误在哪里?
多谢多谢多谢回答O(∩_∩)O

阅读 1.7k
1 个回答

prepareGallery 函数你都没有执行啊

你的js代码 再加一句prepareGallery() 就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题