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 相关文章推荐
模拟用户操作Input元素,不会触发相应事件
May 11 Javascript
js实现杯子倒水问题自动求解程序
Mar 25 Javascript
jQuery阻止事件冒泡具体实现
Oct 11 Javascript
JQuery的attr 与 val区别
Jun 12 Javascript
JavaScript表单验证完美代码
Mar 02 Javascript
纯js实现页面返回顶部的动画(超简单)
Aug 10 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
Nov 15 Javascript
vue实现简单的MVVM框架
Aug 05 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 Javascript
VUEX-action可以修改state吗
Nov 19 Javascript
浅谈Vue.use到底是什么鬼
Jan 21 Javascript
原生js实现九宫格拖拽换位
Jan 26 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
咖啡的植物学知识
2021/03/03 咖啡文化
PHP源代码数组统计count分析
2011/08/02 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
javascript 显示当前系统时间代码
2009/12/28 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
详解Vue方法与事件
2017/03/09 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
html5 input属性使用示例
2013/06/28 HTML / CSS
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
大学生的四年学习自我评价
2013/12/13 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
我的画教学反思
2014/04/28 职场文书
公司保密管理制度
2015/08/04 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS