首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将多个事件侦听器添加到一个元素

将多个事件侦听器添加到一个元素
EN

Stack Overflow用户
提问于 2012-08-07 20:11:06
回答 13查看 161.9K关注 0票数 76

所以我的困境是,我不想把相同的代码写两次。一次用于click事件,另一次用于touchstart事件。

以下是原始代码:

代码语言:javascript
复制
document.getElementById('first').addEventListener('touchstart', function(event) {
    do_something();
    });

document.getElementById('first').addEventListener('click', function(event) {
    do_something(); 
    });

我如何压缩它?必须有一种更简单的方法!

EN

Stack Overflow用户

发布于 2018-11-29 11:12:54

半相关,但这是为了初始化每个元素特定的唯一事件侦听器。

您可以使用滑块实时显示值,也可以查看控制台。在<input>元素上,我有一个名为data-whateverattr标记,因此如果需要,您可以自定义该数据。

代码语言:javascript
复制
sliders = document.querySelectorAll("input");
sliders.forEach(item=> {
  item.addEventListener('input', (e) => {
    console.log(`${item.getAttribute("data-whatever")} is this value: ${e.target.value}`);
    item.nextElementSibling.textContent = e.target.value;
  });
})
代码语言:javascript
复制
.wrapper {
  display: flex;
}
span {
  padding-right: 30px;
  margin-left: 5px;
}
* {
  font-size: 12px
}
代码语言:javascript
复制
<div class="wrapper">
  <input type="range" min="1" data-whatever="size" max="800" value="50" id="sliderSize">
  <em>50</em>
  <span>Size</span>
  <br>
  <input type="range" min="1" data-whatever="OriginY" max="800" value="50" id="sliderOriginY">
  <em>50</em>
  <span>OriginY</span>
  <br>
  <input type="range" min="1" data-whatever="OriginX" max="800" value="50" id="sliderOriginX">
  <em>50</em>
  <span>OriginX</span>
</div>

票数 0
EN
查看全部 13 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11845678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档