繁体   English   中英

在onclick属性中使用javascript

[英]using javascript in the onclick attribute

我之前发布了一个问题并得到了答案,感谢这里的精彩人士,但幸运的是,它从未如此简单。 我有一个代码在图片之间来回切换,但是,当你第一次点击时,图片没有切换,但复选框被选中。 至少一个推理会很棒:)

<script type="text/javascript">
function func()
{
    var img1= document.getElementById("img1");

    if(img1.name == "on")
    {
        img1.src = "images/" + "img1a.jpg";
        img1.name = "off";
    }
    else
    {
        img1.src = "images/" + "img1.jpg";
        img1.name = "on";
    }
}
</script>



</head>

<body>
<form>
<p align="center">
<input type="checkbox" name="interest1" id="interest1" value="x">
<input type="checkbox" name="interest2" id="interest2" value="x">
<input type="checkbox" name="interest3" id="interest3" value="x"></p>   
<p align="center">
<label for="interest1" id="label-interest1"><img src="images/img1.jpg" width="781" height="800" onclick="func()" id="img1" /></label>
<label for="interest2" id="label-interest2"><img src="/images/img2.jpg" width="781" height="800" /></label>
<label for="interest3" id="label-interest3"><img src="/images/img3.jpg" width="781" height="800" /></label></P><!-- code making checkbox be an image-->
</form>

你缺乏“开启”的第一个状态。 尝试将此添加到您的标记

 <img src="images/img1.jpg" width="781" height="800" onclick="func()" name="on" id="img1" />

相反,您可以在条件语句中的javascript中处理此问题,如下所示:

if(img1.name === undefined || img1.name == "on")

这将处理名称属性不存在的第一个状态。

由于您的img元素没有name属性,因此在第一次单击时它与“on”条件不匹配。 您可以添加一个名称属性(这可能会起作用,但会使html无效),但更好的解决方案可能是从您关联的复选框中获取值。 像这样的东西:

var checkboxid = img1.parentNode.getAttribute("for");
document.getElementById(checkboxid).checked

这样,您可以确保它与复选框保持同步。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM