javascript - 如何一次在多个标签上添加事件侦听器
问题描述
我是 Javascript 新手。我有这些图像要在 main-img 上替换。下面的代码工作正常,但我只想知道如何通过在 Javascript 中使用更少的代码来做到这一点。
<div id="container">
<div id="side-img">
<img id="side1" onclick="side1()" src="img1.jpeg">
<img id="side2" onclick="side2()" src="img2.jpeg">
<img id="side3" onclick="side3()" src="img3.jpeg">
<img id="side4" onclick="side4()" src="img4.jpeg">
</div>
<div id="main-img">
<img id="main" src="img0.jpeg">
</div>
</div>
<script type="text/javascript">
var sideimg = document.querySelectorAll('#side-img img');
var main = document.querySelector('#main');
function side1() {
main.src = sideimg[0].src;
}
function side2() {
main.src = sideimg[1].src;
}
function side3() {
main.src = sideimg[2].src;
}
function side4() {
main.src = sideimg[3].src;
}
</script>
解决方案
您可以以编程方式为每个图像附加一个 onclick 处理程序。
document.querySelectorAll('img').forEach((img) => {
img.onclick = () => {
console.log(img.src)
document.querySelector('#main').src = img.src
}
})
<div id="container">
<div id="side-img">
<img id="side1" src="img1.jpeg">
<img id="side2" src="img2.jpeg">
<img id="side3" src="img3.jpeg">
<img id="side4" src="img4.jpeg">
</div>
<div id="main-img">
<img id="main" src="img0.jpeg">
</div>
</div>
推荐阅读
- php - laravel 更新会话数组中的值
- r - 使用 stargazer 可视化多个摘要
- c++ - Spirit X3:自定义数字解析器在结果中产生意外的前导零
- android - Facebook 登录 ionic 4 电容
- c# - Devexpress XtraReport 导出为 PDF 阿拉伯字母显示在主机服务器上分隔
- android - 如何修复 C++ FireMonkey 中的“错误创建超出范围的表单索引”?
- reactjs - 更改路线但不在 React + React Router Dom 中导航
- python - 创建输入图像的光谱直方图
- unity3d - Mapbox Ar 并非在所有方向都有效
- javascript - 在Javascript中处理空值