【发布时间】:2017-12-03 22:10:51
【问题描述】:
我对以下手风琴/标签布局有一点问题:
https://jsfiddle.net/drj3m5tg/
如您所见,在移动设备上,在打开和关闭其他选项卡时,右侧的“+”图标保持为“-”图标。在桌面视图中,有时需要单击选项卡两次才能显示下面的内容。我检查了 chrome 检查器,并且可以看到活动类在再次单击之前没有被删除。有没有办法使用 JS 来解决这个问题?
const accordion = document.getElementsByClassName("accordion");
const panel = document.getElementsByClassName("panel");
for(let i = 0; i < accordion.length; i++){
accordion[i].addEventListener('click', function(){
removeOpen();
// add active class to clicked element and open class to next slibling
const toggleResult = this.classList.toggle('active');
this.nextElementSibling.classList.toggle('panel-open', toggleResult);
});
};
// remove open class for all elements
function removeOpen (){
for(let i = 0; i < panel.length; i++) {
panel[i].classList.remove('panel-open');
}
};
【问题讨论】:
标签: javascript css dom ecmascript-6 accordion