所以我的困境是,我不想把相同的代码写两次。一次用于click事件,另一次用于touchstart事件。
以下是原始代码:
document.getElementById('first').addEventListener('touchstart', function(event) {
do_something();
});
document.getElementById('first').addEventListener('click', function(event) {
do_something();
});我如何压缩它?必须有一种更简单的方法!
发布于 2018-11-29 11:12:54
半相关,但这是为了初始化每个元素特定的唯一事件侦听器。
您可以使用滑块实时显示值,也可以查看控制台。在<input>元素上,我有一个名为data-whatever的attr标记,因此如果需要,您可以自定义该数据。
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;
});
}).wrapper {
display: flex;
}
span {
padding-right: 30px;
margin-left: 5px;
}
* {
font-size: 12px
}<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>
https://stackoverflow.com/questions/11845678
复制相似问题