jQuery实现长按按钮触发事件的方法


Posted in Javascript onFebruary 02, 2015

本文实例讲述了jQuery实现长按按钮触发事件的方法。分享给大家供大家参考。具体分析如下:

现在手机端的快速发展,使许多手机手势需要制作到手机版的网页过程中

网上有许多长按按钮的插件,甚至仅仅是jQuery Mobile都有长按事件

但是基于种种的兼容性问题,

只使用jquery去实现长按动作,可以在手机端与电脑端保持极强的兼容性

一、基本目标

制作一个按钮,实质上一个100x100px的灰色背景的图层,长按达2s则图层里的文字从in变成out。如下图所示:

jQuery实现长按按钮触发事件的方法

二、制作过程

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

<html xmlns="http://www.w3.org/1999/xhtml">  

<head>  

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  

<title>无标题文档</title>  

<script type="text/javascript" src="js/jquery-1.11.1.js"></script>  

  

</head>  

  

<body>  

<div id="mydiv" style="width:100px; height:100px; background:#ddd;">out</div>  

</body>  

</html>  

  

<script>  

/*设置一个长按的计时器,如果点击这个图层超过2秒则触发,mydiv里面的文字从out变in的动作*/  

var timeout ;  

   

$("#mydiv").mousedown(function() {  

    timeout = setTimeout(function() {  

        $("#mydiv").text("in");  

    }, 2000);  

});  

   

$("#mydiv").mouseup(function() {  

    clearTimeout(timeout);  

    $("#mydiv").text("out");  

});  

  

$("#mydiv").mouseout(function() {  

    clearTimeout(timeout);  

    $("#mydiv").text("out");  

});  

  

</script>

实质上,长按的时间不应该过长,因为这有可能与手机系统的部分长按手势产生冲突,但也不宜过短,因为长按时间过短与点击没有任何区别,

理论上,判断长按结束,在手机端上仅设置mouseup动作就可以,

但是,在PC上仅设置mouseup会有如下的bug:

jQuery实现长按按钮触发事件的方法

在长按的时候同时涂黑图层上面的文字,再把鼠标拖出图层,则可以躲过系统mouseup的判定,当然,在手机上无法实现这一个动作,如果完全是写给手机的网页,完全可以不管这步,不过为了更好的兼容性,还是加上mouseout动作修正这个bug。

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
JavaScript中的isXX系列是否继续使用的分析
Apr 16 Javascript
基于javascript实现判断移动终端浏览器版本信息
Dec 09 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
Jan 12 Javascript
js实现加载更多功能实例
Oct 27 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
Nov 03 Javascript
如何解决vue与传统jquery插件冲突
Mar 20 Javascript
Vue中的v-cloak使用解读
Mar 27 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
Oct 27 Javascript
vue中设置height:100%无效的问题及解决方法
Jul 27 Javascript
vue实现简单的星级评分组件源码
Nov 16 Javascript
layui表格内容溢出的解决方法
Sep 06 Javascript
js实现html滑动图片拼图验证
Jun 24 Javascript
jQuery实现跟随鼠标运动图层效果的方法
Feb 02 #Javascript
JavaScript针对网页节点的增删改查用法实例
Feb 02 #Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
Feb 02 #Javascript
jQuery循环动画与获取组件尺寸的方法
Feb 02 #Javascript
基于jQuery实现最基本的淡入淡出效果实例
Feb 02 #Javascript
JavaScript对数字的判断与处理实例分析
Feb 02 #Javascript
JavaScript组件焦点与页内锚点间传值的方法
Feb 02 #Javascript
You might like
PHP制作图型计数器的例子
2006/10/09 PHP
PHP ajax 分页类代码
2008/11/13 PHP
FastCGI 进程意外退出造成500错误
2015/07/26 PHP
php简单日历函数
2015/10/28 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
JavaScript中的类继承
2010/11/25 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
python处理大数字的方法
2015/05/27 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
用python写爬虫简单吗
2020/07/28 Python
国际书籍零售商:Wordery
2017/11/01 全球购物
初中英语演讲稿
2014/04/29 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
老干部座谈会主持词
2015/07/03 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python