Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript问题:如何选择所有div';使用相同的类名并附加事件?_Javascript - Fatal编程技术网

Javascript问题:如何选择所有div';使用相同的类名并附加事件?

Javascript问题:如何选择所有div';使用相同的类名并附加事件?,javascript,Javascript,如何将事件侦听器附加到具有相同类名的所有div 在下面的示例中,我试图向div添加一个类名scroll-x,这样它就可以通过运行JS代码获得水平滚动特性。但是JS代码只适用于第一个div 这是一支钢笔 您应按以下方式更改选择: const scrollAreas = document.querySelectorAll(".scroll-x"); 然后连接eventListener scrollAreas.forEach((scrollArea)=>scrollArea

如何将事件侦听器附加到具有相同类名的所有div

在下面的示例中,我试图向div添加一个类名scroll-x,这样它就可以通过运行JS代码获得水平滚动特性。但是JS代码只适用于第一个div

这是一支钢笔


您应按以下方式更改选择:

const scrollAreas = document.querySelectorAll(".scroll-x");
然后连接eventListener

scrollAreas.forEach((scrollArea)=>scrollArea.addEventListener("mousedown", (e) => {
//Code goes here
}));

尝试将其全部放在for循环中,并使用计数器访问每个元素。在回调函数中使用
this
来访问元素

constscrollarea=document.querySelector(“.scroll-x”);
让isDown=false;
让startX;
让我们离开;
让长度=滚动面积。长度;
for(设i=0;i{
isDown=真;
this.classList.add(“活动”);
startX=e.pageX-this.offsetLeft;
scrollLeft=this.scrollLeft;
});
scrollArea[i].addEventListener(“mouseleave”,()=>{
isDown=假;
此.classList.remove(“活动”);
});
scrollArea[i].addEventListener(“鼠标悬停”,()=>{
isDown=假;
此.classList.remove(“活动”);
});
scrollArea[i].addEventListener(“mousemove”,(e)=>{
如果(!isDown)返回;
e、 预防默认值();
const x=e.pageX-this.offsetLeft;
const walk=(x-startX)*3;//快速滚动
this.scrollLeft=scrollLeft-漫游;
});
}

[…queryselectoral('.sroll-x')].map(el=>el.addEventListener('event',fn))
使用而不是分配多个事件 — 它更易于维护,并且适用于动态添加的元素。例如,使用an's。请参阅和。感谢您的帮助,但他的方法对我不起作用。不幸的是:(尝试了forEach方法没有得到任何错误,但它不能使两个div都可滚动。
scrollAreas.forEach((scrollArea)=>scrollArea.addEventListener("mousedown", (e) => {
//Code goes here
}));