[英]JS Add event on click on an image
我需要更改用 class kfc 標記的 3 個圖像的不透明度,function 在控制台中運行良好,但 onclick 事件似乎不工作
HTML:
<div class="imageAccueil">
<img id = "macdo" src="https://m.mcdonalds.fr/mcdo-mcdofr-front-theme-mobile/image/mcdo-france-android-app.png" alt="L'image du logo de mc do">
<img id = "kfc" src="https://e7.pngegg.com/pngimages/743/385/png-clipart-kfc-hamburger-fried-chicken-logo-kfc-cdr-text.png" alt="image logo de kfc">
<img id = "king" src="https://www.burgerking.fr/logo.jpg" alt="logo de burger king">
</div>
<div id="divGame">
<div class="imgGame">
<img src="https://media.gqmagazine.fr/photos/6006a7ec5779952c6683660d/16:9/w_2560%2Cc_limit/burger-king-korea-stacker-4-3-2-whopper-launch-001.jpg"
alt="image de burger king" class="king">
<img src="https://www.journaldugeek.com/content/uploads/2019/09/mcdonald-fida-lita-12-640x361.jpg"
alt="image de mc do" class="macdo">
<img src="https://static.kfc.fr/images/items/lg/Menu_TowerRaclette.jpg?v=4pNBB3"
alt="image de kfc" class="kfc">
</div>
<div class="imgGame">
<img src="https://img.grouponcdn.com/deal/AMgjseg9WiFSo2jGrU4G4NTv5HD/AM-960x576/v1/t600x362.jpg"
alt="image de mc do" class="macdo">
<img src="https://www.journaldugeek.com/content/uploads/2020/08/rebel.jpg"
alt="image de burger king" class="king">
<img src="https://www.foodhiz.com/wp-content/uploads/2020/06/menu-best-of-280-livraison-mcdo-a-domicile-foodhiz.jpg"
alt="image de mc do" class="macdo">
</div>
<div class="imgGame">
<img src="https://static.kfc.fr/images/web/hamburger/lg/menu.png?v=4PjeG3"
alt="image de kfc" class="kfc">
<img src="https://i.ytimg.com/vi/fiIJeeHJjPc/maxresdefault.jpg"
alt="image de kfc" class="kfc">
</div>
</div>
JS:
function changeOpacity() {
var imagekfc = document.querySelectorAll(".kfc");
imagekfc.forEach( i => i.style.opacity = "1")
}
document.querySelector("#kfc").addEventListener("click",changeOpacity)
document.querySelector("#kfc").addEventListener("click",changeOpacity)
有了這個,您將事件偵聽器添加到 id=kfc 的圖像,但在 function 中,您正在使用 class=kfc 更改圖像的不透明度。
您需要在示例中的圖像中添加“kfc”class
<img id = "kfc" class="kfc" src="https://e7.pngegg.com/pngimages/743/385/png-clipart-kfc-hamburger-fried-chicken-logo-kfc-cdr-text.png" alt="image logo de kfc">
我不太明白你的問題。 您是否正在嘗試創建一些東西,其中肯德基圖像最初是透明的,然后單擊時變得完全不透明? 如果是這樣,請嘗試以下操作。
HTML:
. . .
<div class="imgGame">
<img src="https://static.kfc.fr/images/web/hamburger/lg/menu.png?v=4PjeG3"
alt="image de kfc" class="kfc">
<img src="https://i.ytimg.com/vi/fiIJeeHJjPc/maxresdefault.jpg"
alt="image de kfc" class="kfc">
</div>
CSS:
div.imgGame img.kfc {
opacity: 0.5;
/* this line is optional - for transition. remove if you don't need */
transition: opacity 200ms ease-out;
}
JS:
window.addEventListener("load", () => {
const kfcImages = document.querySelectorAll("div.imgGame img.kfc");
kfcImages.forEach(img => img.addEventListener("click", () => img.style.opacity = "1"));
});
上面的 JS 等待圖像加載。 然后它為每個圖像附加一個事件偵聽器,當單擊圖像時,會觸發回調,使該圖像完全不透明。 我不知道這是否是你需要的,但我希望它仍然有幫助。
var imagekfc = document.querySelectorAll(".kfc");
應該
var imagekfc = document.querySelectorAll("#kfc");
. 是 class 的 CSS 選擇器,而 # 是 id 的選擇器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.