多个Onclick图像

时间:2012-07-20 16:33:57

标签: javascript html

所以我正在尝试创建一个屏幕,显示大约50个切换按钮,以显示在显示器的建筑物中。

我想创建一组用作切换的图像,以便于查看。这就是我想要的效果。 http://www.w3schools.com/dhtml/tryit.asp?filename=trydhtml_intro 除了图片我想要几个灯泡打开和关闭我想要的。

现在这是我的代码。 我可以点击图片来改变我想要的,他们只是不会回去,有什么想法吗?

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01    
    Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
    <head> 
    <title>Untitled Document</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
    <meta http-equiv="Content-Style-Type" content="text/css"> 
    <meta http-equiv="Content-Script-Type" content="text/javascript"> 
    <script type="text/javascript">
    function changeImg(img, newimg) {
    img.src = newimg;
    }


    </script>
    <body>
    <img onclick="changeImg(this, 'staten_uw.jpg')" src="staten_moored.jpg">
    <img onclick="changeImg(this, 'block_uw.jpg')" src="block_moored.jpg">
    </body>
    </html> 

3 个答案:

答案 0 :(得分:2)

它们不会返回,因为代码总是将其更改为_uw图像。如果您希望它们切换,则该功能需要检查当前显示的图像。像这样:

function changeImg(img) {
    if ( img.src.indexOf("_uw") > 0 ) {
        img.src = img.src.replace("_uw","_moored");
    }
    else {
        img.src = img.src.replace("_moored","_uw");
    }
}
如果您有50x2个不同的图像,名为“img1_uw.jpg”,“img1_moored.jpg”,“img2_uw.jpg”,“img2_moored.jpg”等,

将会有效。

如果您只有2张图片,但想要在每张图片之间切换50个按钮,则更容易:

function changeImg(img) {
    if ( img.src == "staten_uw.jpg" ) {
        img.src = "staten_moored.jpg";
    }
    else {
        img.src = "staten_uw.jpg";
    }
}

其他答案也很简单地表明了这一点。

无论哪种方式,HTML都应该改为这样:

<img onclick="changeImg(this)" src="block_moored.jpg">

答案 1 :(得分:1)

你可以这样做:

window.onload = function() {
    images = document.getElementsByTagName("img");
    for (i in images) {
        images[i].addEventListener("click", function(e) {
            var newsrc = this.togglesrc;
            this.togglesrc = this.src;
            this.src = newsrc;
        });
    }
};

然后使用

<img togglesrc="staten_uw.jpg" src="staten_moored.jpg" />

答案 2 :(得分:0)

在您的情况下,您应该只使用一个img标记:

<img onclick="changeImg(this)" src="staten_moored.jpg">

并检查js中的逻辑:

function changeImg(img) {
  img.src = (img.src == 'staten_moored.jpg') ? 'block_moored.jpg' : 'staten_moored.jpg';
}