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  THIS详解 面向对象
Mar 25 Javascript
js日期范围初始化得到前一个月日期的方法
May 05 Javascript
jquery实现图片上传之前预览的方法
Jul 11 Javascript
Javascript函数的参数
Jul 16 Javascript
JQuery给select添加/删除节点的实现代码
Apr 26 Javascript
angular-cli修改端口号【angular2】
Apr 19 Javascript
深入理解vue中的$set
Jun 01 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
Oct 09 Javascript
使用Angular Cli如何创建Angular私有库详解
Jan 30 Javascript
js设置鼠标悬停改变背景色实现详解
Jun 26 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
Oct 02 Javascript
详解JS数组方法
Nov 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
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
JavaScript浅层克隆与深度克隆示例详解
2020/09/01 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
Python 多线程Threading初学教程
2017/08/22 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
如何用python处理excel表格
2020/06/09 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
一份比较全的PHP面试题
2016/07/29 面试题
竞选班干部演讲稿
2014/04/24 职场文书
学生期末评语大全
2014/04/30 职场文书
2015年采购员工作总结
2015/04/27 职场文书
python 多态 协议 鸭子类型详解
2021/11/27 Python