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 相关文章推荐
jQuery仿Excel表格编辑功能的实现代码
May 01 Javascript
jQuery遍历对象、数组、集合实例
Nov 08 Javascript
Javascript中判断对象是否为空
Jun 10 Javascript
js判断复选框是否选中及选中个数的实现代码
May 30 Javascript
Bootstrap页面缩小变形的快速解决办法
Feb 03 Javascript
js 概率计算(简单版)
Sep 12 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
Aug 17 Javascript
微信小程序实现随机验证码功能
Dec 20 Javascript
vue组件之间的数据传递方法详解
Apr 19 Javascript
jQuery实现图片下载代码
Jul 18 jQuery
原生js实现贪食蛇小游戏的思路详解
Nov 26 Javascript
Vue强制组件重新渲染的方法讨论
Feb 03 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
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
PHP之数组学习
2011/05/29 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
jquery 日期分离成年月日的代码
2010/05/14 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
Python continue语句用法实例
2014/03/11 Python
python计算auc指标实例
2017/07/13 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
关于抽烟的检讨书
2014/02/25 职场文书
实践单位评语
2014/04/26 职场文书
森林防火宣传标语
2014/06/27 职场文书
民族学专业求职信
2014/07/28 职场文书
夏季药店促销方案
2014/08/22 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
Python中的tkinter库简单案例详解
2022/01/22 Python
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers