在触摸设备上,滚动是使用 javascript 创建的,如何防止触摸触发单击
On a touch device, where the scroll was created with javascript, how to prevent touch triggering click?
我有一个用AngularJs开发的应用程序,并且正在使用iScroll在列表或网格上创建滚动条。在滚动时触摸和拖动时,有时会触发嵌套元素上的"单击"事件。
我的问题是,如何避免这种情况发生?
$('.foo').on('click', function(e){ ... });
假设列表如下所示:
<div id="iscroll_instance_will_work_here">
<div class="scrollable">
<ul>
<li class="foo"> ... </li>
<li class="foo"> ... </li>
</ul>
</div>
</div>
感谢您的观看!
/* 更新 **/
用户 Rob 建议,并且工作得很好,下面是一个例子:
document.addEventListener('touchstart', function(e) {
e.preventDefault();
console.log("touchStart triggered!");
$('html').addClass('isDragging');
}, false);
document.addEventListener('touchend', function(e) {
e.preventDefault();
console.log("touchEnd triggered!");
setTimeout(function(){
$('html').removeClass('isDragging');
}, 200);
}, false);
您可以删除超时!就我而言,它可以更好地工作;)
假设,您可以在拖动启动或其他任何内容上设置变量或类。然后在你的 .foo 点击事件函数中,如果你的 dragstart 引用为 true,则 e.preventDefault()。
然后确保取消设置变量或在拖动停止处删除类。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- 从javascript创建一个列表
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何访问声音管理器2创建的声音对象
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 在触摸设备上,滚动是使用 javascript 创建的,如何防止触摸触发单击
- 煎茶触摸 2:在选项卡面板内创建嵌套列表
- 煎茶触摸 2 商店 - 在创建模型之前修改响应
- 谷歌地图代码显示当前位置,并在Php:-Firefox中触摸时创建新标记
- 尝试在移动网络上创建触摸滑动和删除功能.没有jquery以外的库
- 如何/是否可以在Firefox Windows触摸桌面中创建与touchstart事件相对应的侦听器
- 如何在DOM上触发js创建的触摸事件?
- IPhone 4链接创建红色半透明背景/覆盖触摸:激活
- 创建支持触摸和单击的绑定
- 如何在Chrome中创建触摸事件
- 当在其包装上创建触摸和鼠标拖动事件时,如何防止锚上的单击事件
- 在支持触摸的浏览器上创建和触发触摸事件
- 使用javascript创建自定义触摸手势