我的事件侦听器激活下面的所有元素。我该如何解决?
My event listener activates all elements below. How can I fix it?
initAccordion(){
const thisProduct = this;
const clickTrigger = document.querySelectorAll(select.menuProduct.clickable);
for (let click of clickTrigger) {
click.addEventListener('click', function(){
event.preventDefault();
console.log('click');
thisProduct.element.classList.toggle(classNames.menuProduct.wrapperActive);
const allActiveProducts = document.querySelectorAll(classNames.menuProduct.wrapperActive);
for(let active of allActiveProducts){
if (active !== thisProduct) {
active.classList.remove(classNames.menuProduct.wrapperActive);
}
}
});
}
}
当在一个生成的元素上触发事件时,下面的所有元素都将 class 激活。我怎样才能防止这种情况发生?
event.stopImmediatePropagation();
event.stopPropagation();
在event.preventDefault()
之后添加这个,它将只允许一个选择器(首先出现的或您点击的地方)触发,而不是全部。
initAccordion(){
const thisProduct = this;
const clickTrigger = document.querySelectorAll(select.menuProduct.clickable);
for (let click of clickTrigger) {
click.addEventListener('click', function(){
event.preventDefault();
console.log('click');
thisProduct.element.classList.toggle(classNames.menuProduct.wrapperActive);
const allActiveProducts = document.querySelectorAll(classNames.menuProduct.wrapperActive);
for(let active of allActiveProducts){
if (active !== thisProduct) {
active.classList.remove(classNames.menuProduct.wrapperActive);
}
}
});
}
}
当在一个生成的元素上触发事件时,下面的所有元素都将 class 激活。我怎样才能防止这种情况发生?
event.stopImmediatePropagation();
event.stopPropagation();
在event.preventDefault()
之后添加这个,它将只允许一个选择器(首先出现的或您点击的地方)触发,而不是全部。