jquery mobile的触控点击事件会多次触发问题的解决方法


Posted in Javascript onMay 08, 2014

jquery mobile 对手势触控提供了如下几个事件监听:

tap  当用户点屏幕时触发
taphold 当用户点屏幕且保持触摸超过1秒时触发
swipe 当页面被垂直或者水平拖动时触发。这个事件有其相关联的属性,分别为scrollSupressionThreshold, durationThreshold, horizontalDistanceThreshold, and verticalDistanceThreshold
swipeleft 当页面被拖动到左边方向时触发
swiperight 当页面被拖动到右边方向时触发

但是 tap 事件在 windows8 触控设备和 android 设备上测试,均有一次点击多次触发的现象。
经测试,tap 方法的响应时间明显快于 onclick 事件,那么我们可以用 click 事件来处理 tap 事件的相应。示例代码参考如下:

但是 tap 事件在 windows8 触控设备和 android 设备上测试,均有一次点击多次触发的现象。
经测试,tap 方法的响应时间明显快于 onclick 事件,那么我们可以用 click 事件来处理 tap 事件的相应。示例代码参考如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
 <meta charset="utf-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1.0,  maximum-scale=1.0, user-scalable=0" />
 <title>jquery mobile 的 tap 事件多次触发问题-志文工作室</title>
 <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
 <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
 <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
</head>
<style>
.article{height:10000px;text-align: center}
</style>
<body>
<div data-role='page'>
 <div data-role='header' data-theme='b' data-position='fixed'>
  <a href='https://3water.com' data-icon='home' data-theme='d' data-iconpos='notext' data-transition='turn'>志文工作室</a>
  <h1 role='heading'>志文工作室</h1>
   <a href='#menu-panel' data-icon='bars' data-theme='d' data-iconpos='notext' data-shadow='false' data-iconshadow='false'>菜单</a>
 </div><!-- /header -->
<div data-role='content'> 
  <div id="article" class="article">
   <ol data-role="listview" data-inset="true">
   </ol>
  </div>
 </div>
</div>
<script>
 //轻点屏幕
 //$('div#article').on("tap",function(event){
 $('div#article').on("click",function(event){
  event.stopPropagation();
  console.log(111111);
  if(event.clientY < 80){
  //单击了页面上半部分,则向上滑动
   if(document.body.scrollTop<1) return;
   var scrollPosY = document.body.scrollTop - document.body.clientHeight + 100;
   $.mobile.silentScroll(scrollPosY);
  }else if(event.clientY > document.body.clientHeight - 80){
   var scrollPosY = document.body.scrollTop + document.body.clientHeight - 100;
   if(scrollPosY < document.body.scrollHeight){//顶部覆盖的高度+可见高度<网页体高度,则滚动一屏
    $.mobile.silentScroll(scrollPosY);
   }
  }
 });
 for(var i=1;i<200;i++){
  $('#article ol').append('<li>第 '+ i +' 行:志文工作室</li>');
 }
</script>
</body>
</html>

另外一个替代方法参考:
JQueryMobile 在 Android 设备上的 tap 事件会出现多次触发的问题, 我们的解决方案是使用 Google FastButton,将原来需要用 tap 的地方改用 fastbutton 处理。

另外一个替代方法参考:
JQueryMobile 在 Android 设备上的 tap 事件会出现多次触发的问题, 我们的解决方案是使用 Google FastButton,将原来需要用 tap 的地方改用 fastbutton 处理。

Javascript 相关文章推荐
UserData用法总结 lanyu出品
Jul 01 Javascript
jQuery图片滚动图片的效果(另类实现)
Jun 02 Javascript
JQuery文字列表向上滚动的代码
Nov 13 Javascript
Js表格万条数据瞬间加载实现代码
Feb 20 Javascript
PHP+jQuery+Ajax实现多图片上传效果
Mar 14 Javascript
基于jquery css3实现点击动画弹出表单源码特效
Aug 31 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
Oct 23 Javascript
Vue.js每天必学之计算属性computed与$watch
Sep 05 Javascript
jQuery实现的图片轮播效果完整示例
Sep 12 Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
May 22 Javascript
Vue自定义多选组件使用详解
Sep 08 Javascript
javascript操作excel生成报表示例
May 08 #Javascript
jquery的ajax跨域请求原理和示例
May 08 #Javascript
Javascript单元测试框架QUnitjs详细介绍
May 08 #Javascript
javascript与有限状态机详解
May 08 #Javascript
ajax提交表单实现网页无刷新注册示例
May 08 #Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
May 08 #Javascript
js动态删除div元素基本思路及实现代码
May 08 #Javascript
You might like
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
详解在Python中处理异常的教程
2015/05/24 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
python 中字典嵌套列表的方法
2018/07/03 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
python 监控logcat关键字功能
2020/09/04 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
应届大学生求职信
2014/07/20 职场文书
商场周年庆活动方案
2014/08/19 职场文书
大学生读书笔记范文
2015/07/01 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技