簡體   English   中英

javascript函數onclick必須單擊兩次-_-為什么如此?

[英]javascript function onclick must click twice -_- why so?

我有一個頁面(這是網站的常見問題頁面),以便當用戶單擊div(例如#question01)時,在其下方顯示一個新的div。 確實很容易,但事實是,有了我的功能,當您第一次單擊時,什么也沒有出現,然后再次單擊,然后就可以了。 我的#faqAnswer01現在有一個“取消隱藏”類,該類設置為display:block; (.hide = display:none;)

所以這是我的兩個問題:

1-為什么我必須單擊兩次才能執行函數?

2-如何解決我的代碼,使其只需單擊一下即可工作?

HTML代碼

<div id="faqContainer">

   <div id="question01" onclick="showAnswer('faqAnswer01','imgArrow01');">Here's a question?<img src="public/images/gt.png" class="imgArrow" id="imgArrow01"></div>
        <div id="faqAnswer01" class="faqAnswerDiv hide">bla bla bla</div>

   <div id="question02" onclick="showAnswer('faqAnswer02','imgArrow02');">Another question here? <img src="public/images/gt.png" class="imgArrow" id="imgArrow02"></div>
    <div id="faqAnswer02" class="faqAnswerDiv hide">answer here.</div>

</div>

我的功能:

function showAnswer(idAnswer , idImg) {
    if (document.getElementById(idImg).src == "http://www.cbifinance.org/public/images/gt.png") {
        document.getElementById(idImg).src = "http://www.cbifinance.org/public/images/gt90.png";
        document.getElementById(idAnswer).className = 'faqAnswerDiv unhide';
    } else {
        document.getElementById(idImg).src = "http://www.cbifinance.org/public/images/gt.png";
        document.getElementById(idAnswer).className = 'faqAnswerDiv hide';
    }
}

嘗試將image.src更改為完整的URL,它應該可以工作。

之所以可行,是因為您的src仍然是public/images/gt.png即使在加載正確找到它的圖像后,該src仍然是public/images/gt.png

因此,第一次單擊時,它將運行到else語句中,並將src設置為完整的絕對URL。 然后再次單擊,它將src更改為您第一次的期望值。 class ,它在圖像中添加了hide類,但是已經第二次添加show 代碼運行正常,if語句錯誤。

由於第一次的src是不是你的if是檢查

src="public/images/gt.png"

VS

src="http://www.cbifinance.org/public/images/gt.png"

然后在第一次單擊上將其設置為該。 然后第二次if條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM