第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么我必須單擊兩次此 JavaScript 函數(shù)才能工作?

為什么我必須單擊兩次此 JavaScript 函數(shù)才能工作?

慕娘9325324 2023-09-11 16:37:00
為了使該功能將顯示更改為“隱藏”然后返回“阻止”,每次需要單擊 2 次。為什么是這樣?如何將其減少到只需一鍵點(diǎn)擊?function showOfferMessage() {                                          var coll = document.getElementsByClassName("collapsible");  var i;  for (i = 0; i < coll.length; i++) {    coll[i].addEventListener("click", function() {      this.classList.toggle("active");      var content = this.nextElementSibling;      if (content.style.display === "block") {        content.style.display = "none";      } else {        content.style.display = "block";      }    });  }}<div class="offer-row collapsible" id="'.$oid.'" onclick="showOfferMessage()">    <div class="offer-info-item">        <div class="offcatreview-title">            <h3>Cat. Rating</h3>        </div>        <div class="offer-cat-rating">        </div>    </div></div><div class="content">    <p>'.$message.'</p></div>
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

那是因?yàn)槟诿看吸c(diǎn)擊時(shí)都注冊(cè)了一個(gè)事件偵聽(tīng)器!因此,每次單擊時(shí),偵聽(tīng)器都會(huì)再次執(zhí)行。


您的代碼已修復(fù):


                    

function showOfferMessage(element) {

    element.classList.toggle("active");

    var content = element.nextElementSibling;

    if (content.style.display === "block") {

      content.style.display = "none";

    } else {

      content.style.display = "block";

    }

}

<div class="offer-row collapsible" id="'.$oid.'" onclick="showOfferMessage(this)">

    <div class="offer-info-item">

        <div class="offcatreview-title">

            <h3>Cat. Rating</h3>

        </div>

        <div class="offer-cat-rating">

        </div>

    </div>

</div>

<div class="content" style="display: block">

    <p>'.$message.'</p>

</div>


查看完整回答
反對(duì) 回復(fù) 2023-09-11
?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊

onclick事件執(zhí)行在元素showOfferMessage() {}上放置事件偵聽(tīng)器的函數(shù)"collapsible"。然后第二次單擊執(zhí)行事件監(jiān)聽(tīng)器的內(nèi)容。

但首先,只要你只有一個(gè)名為"collapsible"“為什么”的元素,就嘗試獲取多個(gè)元素。使用 css 樣式選擇器執(zhí)行document.querySelector并定位元素,然后addEventListener直接鏈接到該選擇器上。

當(dāng)您像這樣查詢樣式時(shí),您會(huì)得到顯式設(shè)置的樣式。在您的情況下,如果沒(méi)有單擊該"collapsible"元素,則不會(huì)設(shè)置顯示樣式。即使 div 具有塊的默認(rèn)顯示樣式,但它尚未顯式設(shè)置,因此...style.display將返回空字符串 -> falsy。您必須使用該getComputedStyle方法獲得隱式樣式,

像這樣(

? this.classList.toggle("active");

? var content = document.querySelector(".content");

? if (window.getComputedStyle(content).display === "block") {

? ? content.style.display = "none";

? } else {

? ? content.style.display = "block";

? }

});

我可能會(huì)在事件監(jiān)聽(tīng)器中使用箭頭函數(shù):

document.querySelector(".collapsible").addEventListener("click", event => {

? event.target.classList.toggle("active");

? var content = document.querySelector(".content");

? if (window.getComputedStyle(content).display === "block") {

? ? content.style.display = "none";

? } else {

? ? content.style.display = "block";

? }

});


查看完整回答
?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

我遇到了類似的問(wèn)題,最終使用!==而不是===:


if (content.style.display !== "none") {

    content.style.display = "none";

} else {

    content.style.display = "block";

};


查看完整回答
反對(duì) 回復(fù) 2023-09-11
  • 3 回答
  • 0 關(guān)注
  • 154 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)