HTML - 通过单击图像调用javascript

HTML - calling javascript by clicking on image

本文关键字:图像 调用 javascript 单击 HTML      更新时间:2023-09-26

我试图通过单击图像来调用javascript,但它不起作用。
请参考下面的我的代码。

爪哇语

<script type="text/javascript">
<!--
var image1=new Image()
image1.src="images/Image_1.png"
var image2=new Image()
image2.src="images/Image_2.png"
var image3=new Image()
image3.src="images/Image_3.png"
//-->
  function login(showhide){
    if(showhide == "show"){
        document.getElementById('popupbox').style.visibility="visible";
    }else if(showhide == "hide"){
        document.getElementById('popupbox').style.visibility="hidden"; 
    }
  }
  </script>

我的代码

<div id="apDiv21"><img src="images/Login_OnOut.png" width="71" height="44" 
onmouseover="this.src='images/Login_OnRollover.png'" 
  onmouseout="this.src='images/Login_OnOut.png'" onclick="login('show');" />
  <div id="popupbox"> 
<form name="login" action="" method="post" style="background-color:#C7C7C7">
<center>Username:</center>
<center><input name="username" size="14" /></center>
<center>Password:</center>
<center><input name="password" type="password" size="14" /></center>
<center><input type="submit" name="submit" value="login" /></center>
</form>
<center><a href="login('hide');">close</a></center> 
</div> 

看看我做的这个JSFiddle:

http://jsfiddle.net/Q5asp/

我更改了底部的链接以正确隐藏它。 问题是,当您使用Login('show')时,它会尝试访问您的表单,因为它是相同的名称。 必须确保函数名称和名称不冲突。

form标记中删除属性name="login"。它现在污染了名称空间,因此 JavaScript 解释器将名称login作为引用表单节点而不是您的函数。(由于这个原因,Firefox 控制台错误消息显示"登录不是一个功能"。– 您也可以重命名表单,但通常不需要表单的name属性。

附言您对问题所做的编辑是错误的。<a onclick="login('hide');">close</a>可单击文本的正确标记(尽管为了可用性,最好使用按钮)。