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 获取事件对象的注意点
Jul 29 Javascript
javascript面向对象编程(一) 实例代码
Jun 25 Javascript
jQuery技巧总结
Jan 01 Javascript
javascript中的作用域和上下文使用简要概述
Dec 05 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
Oct 27 Javascript
基于javascript实现彩票随机数生成(升级版)
Apr 17 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
Feb 17 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
Jun 10 Javascript
node中使用es5/6以及支持性与性能对比
Aug 11 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
angularjs手动识别字符串中的换行符方法
Oct 02 Javascript
vue实现简单跑马灯效果
May 25 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.MVC的模板标签系统(二)
2006/09/05 PHP
PHP的FTP学习(二)
2006/10/09 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
python批量提交沙箱问题实例
2014/10/08 Python
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
python 以16进制打印输出的方法
2018/07/09 Python
Python退火算法在高次方程的应用
2018/07/26 Python
Python属性和内建属性实例解析
2020/01/14 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
numpy库reshape用法详解
2020/04/19 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
会计工作决心书
2014/03/11 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
2014年班干部工作总结
2014/11/25 职场文书
党员发展大会主持词
2015/07/03 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers