簡體   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