亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您將如何使用 JavaScript 創建一個取消隱藏/隱藏內容的切換按鈕?

您將如何使用 JavaScript 創建一個取消隱藏/隱藏內容的切換按鈕?

長風秋雁 2023-01-06 11:28:41
我試圖隱藏單擊按鈕時顯示的內容。這是我的起始 HTML:        <div class="sunrise-section" id="hide-show">          <h3>SUNRISE</h3>          <p class="sunrise">5:40 A.M.</p>        </div>        <div class="sunset-section" id="hide-show">          <h3>SUNSET</h3>          <p class="sunset">8:05 P.M.</p>        </div>        <div class="navbar-bottom">            <button onclick="onClick"><img src="https://image.flaticon.com/icons/svg/892/892499.svg" alt="click for details" height="18px" id="navbar-bottom-button"></button>        </div>這是我的起始 JavaScript(onClick 函數是最后一個;我包含了所有內容以顯示上下文):window.addEventListener('load', ()=> {    let long;    let lat;    let locationTimeZone = document.querySelector('.location-timezone');    let temperatureDegree = document.querySelector('.temperature-degree');    let humidity = document.querySelector('.humidity');    let todayDate = document.querySelector('.today-date');    let windSpeed = document.querySelector('.wind-speed');    let visibility = document.querySelector('.visibility');    let pressure = document.querySelector('.pressure');    let sunrise = document.querySelector('.sunrise');    let sunset = document.querySelector('.sunset');    let myDate = new Date();    if (navigator.geolocation) {        navigator.geolocation.getCurrentPosition(position => {            long = position.coords.longitude;            lat = position.coords.latitude;            const proxy = 'https://cors-anywhere.herokuapp.com/';            const api = `${proxy}https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${long}&appid=d5f88bf8e740a9d82677f46f346f0a33&units=Imperial`;            }                            } )        });    }}); 我試圖將 .getElementById("hide-show") 更改為 document.querySelectorAll('[id=hide-show]') 并且沒有任何變化。我感謝任何可以幫助我更好地理解這個問題的意見!
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

我認為如果您將 javascript 放在單獨的文件中,則永遠不會調用 onClick 函數。這里有一個簡單的方法來做到這一點,它被稱為事件委托,在一個循環中有一個監聽器比多個監聽器更好。


let elements = document.querySelectorAll('.hide-show');


document.addEventListener('click', e => {

   if (e.target.closest('button')) {

      elements.forEach(el => {

         el.classList.contains('hidden') ? el.classList.remove('hidden') : el.classList.add('hidden');

      })

   }

})

.hidden {

  display: none

}

<div class="sunrise-section hide-show" id="one">

  <h3>SUNRISE</h3>

  <p class="sunrise">5:40 A.M.</p>

</div>

<div class="sunset-section hide-show" id="two">

  <h3>SUNSET</h3>

  <p class="sunset">8:05 P.M.</p>

</div>


        <div class="navbar-bottom">

            <button><img src="https://image.flaticon.com/icons/svg/892/892499.svg" alt="click for details" height="18px" id="navbar-bottom-button"></button>

        </div>


查看完整回答
反對 回復 2023-01-06
  • 1 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號