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 相关文章推荐
获取焦点时,利用js定时器设定时间执行动作
Apr 02 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
Mar 12 Javascript
form.submit()不能提交表单的错误原因及解决方法
Oct 13 Javascript
深入浅析JavaScript中的constructor
Apr 19 Javascript
JavaScript探测CSS动画是否已经完成的方法
Aug 30 Javascript
js 判断登录界面的账号密码是否为空
Feb 08 Javascript
JS回调函数简单用法示例
Feb 09 Javascript
Javascript中从学习bind到实现bind的过程
Jan 05 Javascript
使用Vuex实现一个笔记应用的方法
Mar 13 Javascript
Javascript三种字符串连接方式及性能比较
May 28 Javascript
layui输入框中只允许输入整数的实现方法
Sep 18 Javascript
使用typescript改造koa开发框架的实现
Feb 04 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 错误之引号中使用变量
2009/05/04 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
浅谈php自定义错误日志
2015/02/13 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
Javascript中的this绑定介绍
2011/09/22 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
AngularJS 中的指令实践开发指南(一)
2016/03/20 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
python正则实现提取电话功能
2018/02/24 Python
Python列表list排列组合操作示例
2018/12/18 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
python实现在函数中修改变量值的方法
2019/07/16 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
企业管理培训感言
2014/01/27 职场文书
高中军训感言400字
2014/02/24 职场文书
大学生安全责任书
2014/07/25 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
离职证明格式样本
2015/06/12 职场文书
实验心得体会范文
2016/01/25 职场文书