如何让touchmove之后不触发touchend的事件

简介: 如何让touchmove之后不触发touchend的事件

手机扫码看效果

不多说,直接上代码

<ul id="Ul">
    <li>111</li>
    <li>222</li>
    <li>333</li>
    <li>444</li>
    <li>555</li>
    <li>666</li>
    <li>777</li>
    <li>888</li>
    <li>999</li>
    <li>000</li>
    <li>aaa</li>
    <li>bbb</li>
    <li>ccc</li>
    <li>ddd</li>
    <li>eee</li>
    <li>fff</li>
    <li>ggg</li>
    <li>hhh</li>
    <li>iii</li>
    <li>jjj</li>
    <li>kkk</li>
    <li>lll</li>
    <li>mmm</li>
    <li>nnn</li>
    <li>ooo</li>
    <li>ppp</li>
    <li>qqq</li>
</ul>
*{
    margin: 0;
    padding: 0;
    border: 0;
}
ul{
    list-style: none;
}
li{
    line-height: 2em;
    border-bottom: 1px solid #eee;
    width: 100%;
    text-indent: 2em;
}
var UL = document.getElementById('Ul');
var moves = true;
function Alert(ev){
    if(moves)
    alert(ev.target.innerHTML)
}
UL.addEventListener('touchmove',function(){
    moves = false;
    UL.addEventListener('touchend',function(){
        moves = true;
    })
})
UL.addEventListener('touchend', Alert)

原理:

1. 设置一个变量moved来标识是否有移动过,初始值为false;

2. 绑定touchend事件,将moved置为true;

3. 绑定touchmove事件,将moved置为false;

4. 在touchmove事件函数中继续绑定touchend事件,再将moved置为true

---恢复内容结束---


相关文章
|
6月前
|
API
(22):事件总结
(22):事件总结
|
6月前
(18):事件
(18):事件
|
7月前
GotFocus和PreviewLeftButtonDown事件
GotFocus和PreviewLeftButtonDown事件
|
存储 JSON 前端开发
EventSource 引发的一系列事件 #150
EventSource 引发的一系列事件 #150
244 0
|
安全 C#
C#——事件
C#——事件
104 1
|
API 数据库
9.2领域事件
领域(近似理解为实现某个功能的多个模型)事件可以切断领域模型之间的强依赖关系,事件发布后,由事件的处理者决定如何响应事件,以便于实现事件发布和事件处理的解耦。
|
JavaScript 前端开发 安全
什么事件必须要我王二狗来处理?
什么事件必须要我王二狗来处理?
243 0
什么事件必须要我王二狗来处理?
|
C#
C# 事件
C# 事件
116 0
C# 事件
|
Web App开发 缓存 JavaScript
55、其他常见事件
beforeunload事件在窗口、文档、各种资源将要卸载前触发。它可以用来防止用户不小心卸载资源。
184 0