【第四章】JavaScript图片库的简单操作

1.JavaScript图片库的操作,先来看以下代码:

<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<head>
</head>
<body>
    <ul>
        <li>
            <a href="source/1.jpg" title="first picture">first picture</a>
        </li>
        <li>
            <a href="source/2.png" title="second picture">second picture</a>
        </li>
    </ul>
    <p id="desc">Choose an image.</p>
    <img id="placeHolder" src="">
</body>
</html>

现在,我想要点击链接的时候,停留在当前页面并把图片显示出来,那么有两种方法可以实现,DOM的setAttribute和非DOM方式。如下:

<script type="text/javascript">
    function showPicture(whichPicture){
        var source = whichPicture.getAttribute("href");
        var placeHolder = document.getElementById("placeHolder");
        placeHolder.setAttribute("src", source); //第一种方法
        //placeHolder.src = source; //第二种方法,这是非DOM方式
    }
</script>

setAttribute方法是“第1级DOM”的组成部分,它可以设置任意节点的任意属性。而第二种非DOM方式则需要记忆哪些元素可以用哪些方法来设置。setAttribute则可以任意修改一个元素的任何属性,另一个优势是可移植性更好。

等等,上面的代码貌似还缺少什么?对,那就是元素点击响应事件。在两个a标签中,添加οnclick="showPicture(this)",这是必不可少的。但是当你这样设置完,点击链接的时候,仍然会跳转到其它页面。这里就需要在onclick事件后面加一个return false;这样onclick函数就认为“这个链接没有被点击”,从而不会跳转到另外的页面了。

所以,最终代码如下:

<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<head>
	<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
	<script type="text/javascript"></script>
</head>
<body>
    <ul>
        <li>
            <a href="source/1.jpg" title="first picture" onclick="showPicture(this);return false;">first picture</a>
        </li>
        <li>
            <a href="source/2.png" title="second picture" onclick="showPicture(this);return false;">second picture</a>
        </li>
    </ul>
    <p id="desc">Choose an image.</p>
    <img id="placeHolder" src="">
    <script type="text/javascript">   
        function showPicture(whichPicture){
            var source = whichPicture.getAttribute("href");
            var placeHolder = document.getElementById("placeHolder");
            placeHolder.setAttribute("src", source)
            //placeHolder.src = source
        }
    </script>
</body>
</html>

参考:JavaScript DOM编程艺术(中文第2版)

转载于:https://my.oschina.net/u/3640519/blog/1552140

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值