[英]Why are the DOM elements not being selected
我有一個函數,當鼠標懸停在上面時會顯示一個 html 元素,但它似乎沒有按預期工作。
我在js文件中的代碼如下:
const htmlIc = document.querySelector('.fa-html5');
const htmlInfo = document.querySelector('.info-section');
htmlIc.addEventListener("mouseover", toggleHtml);
function toggleHtml() {
htmlInfo.classList.add("show");
}
這是事件偵聽器正在偵聽的元素(圖標):
<div class="icons">
<a href="#!">
<i class="fab fa-html5 fa-2x"></i>
</a>
</div>
這是我希望將 show 類應用於的元素:
<div class="info-section">
<h1>Lorem ipsum</h1>
</div>
我在這個項目中使用了SASS,通過手動在元素中添加show類進行了驗證,從那部分看是沒有問題的
您可以通過style
display
選項在切換它們的地方做一些事情。 您可以做的一件事是,如果您已習慣使用show
類,那么您需要在顯示和隱藏之間創建類似的切換。
const htmlIc = document.querySelector(".fa-html5"); const htmlInfo = document.querySelector(".info-section"); htmlIc.addEventListener("mouseover", toggleHtml); function toggleHtml() { let infoSection = document.querySelector(".info-section"); if (infoSection.style.display === "none") { infoSection.style.display = "block"; } else { infoSection.style.display = "none"; } }
<!DOCTYPE html> <html> <head> <title>Parcel Sandbox</title> <meta charset="UTF-8" /> </head> <body> <div class="icons"> <a href="#!"> <i class="fab fa-html5 fa-2x">hh</i> </a> <div class="info-section" style="display: none;"> <h1>Lorem ipsum</h1> </div> </div> <script src="src/index.js"></script> </body> </html>
這是工作! 還添加 .show css 類
const htmlIc = document.querySelector('.fa-html5'); const htmlInfo = document.querySelector('.info-section'); htmlIc.addEventListener("mouseover", toggleHtml); function toggleHtml() { htmlInfo.classList.add("show"); }
<div class="icons"> <a href="#!"> <i class="fab fa-html5 fa-2x"></i> </a> </div> <div class="info-section"> <h1>Lorem ipsum</h1> </div>
htmlInfo.classList.toggle("show");
我只需要為 classList 使用 .toggle 方法。 由於我使用的是懸停效果,因此切換更適合這種情況。 在此解決方案的評論中歸功於@BerkCoşar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.