【发布时间】:2018-03-14 20:15:30
【问题描述】:
为了使我的代码更简洁,我决定采用我经常使用的 if/else 语句并将其转换为函数。我尝试将此函数应用于 forEach 循环,但是,我收到一个错误,即函数的参数未定义。
代码如下:
var addClass = (className) => {
(this.classList.contains(className) === true)
? this.classList.remove('active') & this.classList.add(className)
: this.classList.add(className);
}
exploreStory_buttons.forEach(el => el.addEventListener('mouseover'), addClass(active));
任何对我做错了什么的见解将不胜感激。像往常一样,我觉得解决方案可能很简单:我只是没有看到它。
【问题讨论】:
-
addClass(active):active是一个未定义的变量,因此您传递给函数的参数是未定义的。应该是"active"。 -
@JeremyThille 我实际上曾尝试在参数括号中的 active 周围加上引号,但没有成功。
-
BTW
&是一个按位运算符,您可能指的是&&用于短路操作。此外,如果它已经存在,为什么还要添加相同的类..?
标签: javascript function foreach