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 相关文章推荐
datePicker——日期选择控件(with jquery)
Feb 20 Javascript
jQuery对象和DOM对象使用说明
Jun 25 Javascript
使用Post提交时须将空格转换成加号的解释
Jan 14 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
May 02 Javascript
AngularJS身份验证的方法
Feb 17 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
Feb 09 Javascript
js使用html2canvas实现屏幕截取的示例代码
Aug 28 Javascript
Vue2.0生命周期的理解
Aug 20 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
Apr 23 Javascript
js实现课堂随机点名系统
Nov 21 Javascript
javascript History对象原理解析
Feb 17 Javascript
解决vuex刷新数据消失问题
Nov 12 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 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
python抽象基类用法实例分析
2015/06/04 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
python OpenCV学习笔记实现二维直方图
2018/02/08 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
对python字典过滤条件的实例详解
2019/01/22 Python
Django CBV类的用法详解
2019/07/26 Python
python集合删除多种方法详解
2020/02/10 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
python中get和post有什么区别
2020/06/19 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
受希腊女神灵感的晚礼服、鸡尾酒礼服和婚纱:THEIA
2018/04/15 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
python turtle绘图命令及案例
2021/11/23 Python