我试图通过点击图片来调用javascript,但它无法正常工作 请参阅下面的代码。
的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>
答案 0 :(得分:1)
看看我制作的这个JSFiddle:
我更改了底部的链接以正确隐藏它。问题是,当您使用Login('show')
时,它会尝试访问您的表单,因为它的名称相同。您必须确保您的函数名称和名称不冲突。
答案 1 :(得分:1)
从name="login"
标记中删除属性form
。它现在污染名称空间,以便JavaScript解释器将名称login
称为表单节点而不是您的函数。 (出于这个原因,Firefox控制台错误消息显示“登录不是函数”。) - 您也可以重命名表单,但通常不需要表单的name
属性。
P.S。你对这个问题所做的编辑是错误的。可点击文本的正确标记为<a onclick="login('hide');">close</a>
(但为了便于使用,最好使用按钮)。