javascript - Javascript 不适用于图标
问题描述
这是我的代码
function addGlobalEventListener(type, selector, callback) {
document.addEventListener(type, function(e) {
if (e.target.matches(selector)) callback(e);
});
}
addGlobalEventListener('click', '.js-accordation', function(e) {
let panel = e.target.nextElementSibling;
e.target.classList.toggle('js-accordation_is-active');
if (panel.style.maxHeight) {
panel.style.maxHeight = null
} else panel.style.maxHeight = panel.scrollHeight + 'px';
});
<div class="js-accordation">ACCORDATION
<i class="icon icon_arrow-down"></i>
</div>
当我单击ACCORDATION时,它正在工作,但是当我单击图标时,它不起作用
解决方案
我认为您的事件侦听器仅在单击带有的类时触发js-accordation
。
您可以在您的中添加更多选择器addGlobalEventListener
并添加i
标签:
addGlobalEventListener('click',['.js-accordation', '.js-accordation i'],function(e){}
function addGlobalEventListener (type, selector, callback){ document.addEventListener(type,function(e){
if(e.target.matches(selector)) callback(e);
});
}
addGlobalEventListener('click',['.js-accordation', '.js-accordation i'],function(e){
console.log('accordation');
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="js-accordation">ACCORDATION
<i class="fa fa-arrow-down"></i>
</div>
推荐阅读
- python - Python中n个特征的梯度下降?吴恩达课程的一部分
- python - 在 Windows 上使用 Docker 创建 Lambda 层时遇到问题
- python - 在python中添加超链接到Excel csv文件
- angular - 缩放时如何从刻度中删除小数?
- micronaut - Micronaut 在 Controller 方法中将对象数组转换为 json 响应
- c# - 从 Firebase 中的实时数据库获取数据后,无法写入 Unity 的 TMPro 文本字段
- c - 如何使字符串文字包括宏
- javascript - 为什么我在导入模块时变得不确定
- python - 检查是否已将关注者添加到我的 Twitter 帐户
- react-native - 在 React Native 中使用 ScrollTo 的 FlatList