单击时更改图像,然后是js中的链接?

时间:2013-06-24 20:10:51

标签: javascript

JavaScript的新手,需要一只手......

我的图片会随着点击而改变:

<img alt="" src="header.gif" id="imgClickAndChange" onclick="changeImage()"/>
</p>
    <script language="javascript">
      function changeImage() {

    if (document.getElementById("imgClickAndChange").src == "brain.gif") 
    {
        document.getElementById("imgClickAndChange").src = "brain.gif";
    }
    else 
    {
        document.getElementById("imgClickAndChange").src="brain.gif";
    }
}   </script>

但我想点击brain.gif链接到名为#two的div。如何将新元素作为链接?

2 个答案:

答案 0 :(得分:1)

这不是很优雅,但我相信这是你想要的?我将点击处理程序移到了HTML之外,你可以做一些清理工作,比如存储imgClickAndChange而不是每次都查找它,但是你明白了这一点!

HTML:

<img alt="" src="header.gif" id="imgClickAndChange" />

JavaScript的:

 function changeImage() {

      if (document.getElementById("imgClickAndChange").src == "brain.gif") {
          document.location.hash = "#something"; // this will jump you down the page to an element with ID of "something"
      } else {
          document.getElementById("imgClickAndChange").src = "brain.gif";
      }
  }

  var img = document.getElementById("imgClickAndChange");
  img.onclick = changeImage;

答案 1 :(得分:1)

您必须将图像包装在锚标记中,这样您就可以设置锚点的href。此外,您应该将this传递到onclick

HTML:

<a href="#test"><img alt="" src="header.gif" id="imgClickAndChange" onclick="changeImage(this)"/></a>

JS:

function changeImage(obj) {
    if (obj.src == "brain.gif") 
    {
        obj.src = "brain.gif";
    }
    else 
    {
       obj.src="brain.gif";
    }

    //Change the href of the anchor
    obj.parentNode.href = "#two";
    console.log(obj.parentNode.href);
}