简体   繁体   English

如何通过单击图标来更改超棒字体的颜色

[英]How to change color of font-awesome icon by clicking the icon

 var garbage = document.getElementById("garbage"); garbage.addEventListener("click",function(){ garbage.style.color = "#66c144"; } 
 <link href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" rel="stylesheet"> <div id="garbage"> <i class="fas fa-trash"></i> </div> 

Hi, I am trying to change the font color for font-awesome trash icon by clicking the icon. 嗨,我正在尝试通过单击图标来更改超棒垃圾桶图标的字体颜色。 However, it is not working. 但是,它不起作用。 I would appreciate any tips on how to get this work. 我将不胜感激有关如何进行这项工作的任何提示。


 var trash = document.getElementById("trash"), glass = document.getElementById("glass"), organic = document.getElementById("organic"), plastic = document.getElementById("plastic"), paper = document.getElementById("paper"); trash.addEventListener("click",function(){ this.children[0].style.color = "#66c144"; glass.children[0].style.color = "#ffffff"; organic.children[0].style.color = "#ffffff"; plastic.children[0].style.color = "#ffffff"; paper.children[0].style.color = "#ffffff"; }); glass.addEventListener("click",function(){ this.children[0].style.color = "#66c144"; trash.children[0].style.color = "#ffffff"; organic.children[0].style.color = "#ffffff"; plastic.children[0].style.color = "#ffffff"; paper.children[0].style.color = "#ffffff"; }); organic.addEventListener("click",function(){ this.children[0].style.color = "#66c144"; trash.children[0].style.color = "#ffffff"; glass.children[0].style.color = "#ffffff"; plastic.children[0].style.color = "#ffffff"; paper.children[0].style.color = "#ffffff"; }); plastic.addEventListener("click",function(){ this.children[0].style.color = "#66c144"; trash.children[0].style.color = "#ffffff"; glass.children[0].style.color = "#ffffff"; organic.children[0].style.color = "#ffffff"; paper.children[0].style.color = "#ffffff"; }); paper.addEventListener("click",function(){ this.children[0].style.color = "#66c144"; trash.children[0].style.color = "#ffffff"; glass.children[0].style.color = "#ffffff"; organic.children[0].style.color = "#ffffff"; plastic.children[0].style.color = "#ffffff"; }); 
 <link href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" rel="stylesheet"> <div class="icons flex"> <div id="trash"> <i class="fas fa-trash"></i> </div> <div id="glass"> <i class="fas fa-wine-glass"></i> </div> <div id="organic"> <i class="fab fa-envira"></i> </div> <div id="plastic"> <i class="far fa-hdd"></i> </div> <div id="paper"> <i class="far fa-newspaper"></i> </div> </div> 
UPDATE So Thanks to everyone's help, I managed to get the result I wanted (Every time I click a different icon, only the icon I click has the different color). 更新因此,在每个人的帮助下,我设法获得了想要的结果(每次单击不同的图标,只有单击的图标具有不同的颜色)。 On top of that, I am curious if there is a less repetitive or messy way to execute what I have now like using "Function" or something. 最重要的是,我很好奇是否存在使用“功能”之类的方法来执行我现在喜欢的重复性或混乱程度较小的方法。 I would appreciate if I can get some tips on it. 如果能得到一些提示,我将不胜感激。

You are missing the ); 您缺少); after the closing } : 在结束之后}

 var garbage = document.getElementById("garbage"); garbage.addEventListener("click",function(){ garbage.style.color = "#66c144"; }); 
 <link href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" rel="stylesheet"> <div id="garbage"> <i class="fas fa-trash"></i> </div> 

Note: You don't need to target the parent , you can just give the id to the icon. 注意:您不需要定位 对象 ,只需将id赋予图标即可。

Here's some other options to change an FA icon. 这是更改FA图标的其他一些选项。 The keyword this represents garbage . 关键字this表示garbage The .property or .method()/.function() references the icon. .property.method()/.function()引用图标。

References 参考

.children 。孩子

.querySelector() .querySelector()

.getElementsByTagName() .getElementsByTagName()

.classList .classList

.firstElementChild .firstElementChild


Demo 演示

 var garbage = document.getElementById("garbage"); garbage.addEventListener("click", function() { this.children[0].style.color = "#66c144"; this.querySelector('.fas').style.fontSize = '3rem'; this.getElementsByTagName('I')[0].classList.toggle('fa-spin'); this.firstElementChild.style.transition = 'color 1.5s ease 1.25s, font-size 0.75s ease-out'; }, false); 
 <link href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" rel="stylesheet"> <div id="garbage"> <i class="fas fa-trash"></i> </div> 

You are missing the closing parenthesis after your event listener: 在事件侦听器之后,您缺少右括号:

var garbage = document.getElementById("garbage");

garbage.addEventListener("click",function(){
    garbage.style.color = "#66c144";
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM