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对象中关于setTimeout和setInterval的this介绍
Jul 21 Javascript
JS图片无缝、平滑滚动代码
Mar 11 Javascript
ashx文件获取$.ajax()方法发送的数据
May 26 Javascript
vue.js绑定class和style样式(6)
Dec 09 Javascript
bootstrap table单元格新增行并编辑
May 19 Javascript
Nuxt.js之自动路由原理的实现方法
Nov 21 Javascript
js实现json数组分组合并操作示例
Feb 12 Javascript
javascript头像上传代码实例
Sep 28 Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 Javascript
JS实现碰撞检测效果
Mar 12 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 Javascript
JavaScript中arguments的使用方法详解
Dec 20 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制作的意见反馈表源码
2007/03/11 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
简单介绍Python中的floor()方法
2015/05/15 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
详解python调度框架APScheduler使用
2017/03/28 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python中断多重循环的思路总结
2019/10/04 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
2020/02/12 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
html5 canvas 使用示例
2010/10/22 HTML / CSS
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
Funko官方商店:源自美国,畅销全球搪胶收藏玩偶
2018/09/15 全球购物
Sql面试题
2013/03/20 面试题
南京某软件公司的.net面试题
2015/11/30 面试题
接口可以包含哪些成员
2012/09/30 面试题
英语专业自荐书
2014/06/13 职场文书
2014年劳动部工作总结
2014/12/11 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
劳动模范获奖感言
2015/07/31 职场文书