【发布时间】:2021-04-02 10:11:37
【问题描述】:
我需要在 div 元素内切换一个图标。对我来说主要问题是每次用户点击 div 时都会发生切换,而不是图标。
HTML
<div class="faq__questions-question" ><span>Lorem ipsum?</span><i class="fas fa-minus"></i></div>
我一直在尝试做的是在图标或 div 中添加 onclick 事件,但它仅适用于自身。
<i onclick="myFunction(this)" class="fas fa-minus"></i>
那么我的javascript是
function myFunction(x) {
x.classList.toggle("fa-plus");
}
如何在单击整个 div 时只选择一个图标类?我想我需要在 div 上使用 onclick 事件:
<div onclick"myFunction()" class="faq__questions-question" ><span>Lorem ipsum?</span><i class="fas fa-minus"></i></div>
但是我应该如何处理我的 javascript 代码?
【问题讨论】:
-
onclick"myFunction()"语法无效,并且缺少参数;此外,像onclick这样的内联事件处理程序是not recommended。它们是一种obsolete, hard-to-maintain and unintuitive 注册事件的方式。总是useaddEventListener。 -
使用event delegation而不是分配多个事件 — 它更易于维护,并且适用于动态添加的元素。例如,使用event argument 的
target。见the tag info 和What is DOM Event delegation?。 -
这里的答案将帮助您了解如何做到这一点stackoverflow.com/questions/1369035/…
-
stackoverflow.com/questions/1369035/…这里的答案将帮助您了解如何做到这一点
标签: javascript html css