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 相关文章推荐
表单的一些基本用法与技巧
Jul 15 Javascript
javascript下有关dom以及xml节点访问兼容问题
Nov 26 Javascript
passwordStrength 基于jquery的密码强度检测代码使用介绍
Oct 08 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
Apr 20 Javascript
JavaScript仿支付宝密码输入框
Dec 29 Javascript
理解Angular数据双向绑定
Jan 10 Javascript
JQuery 的跨域方法推荐_可跨任何网站
May 18 Javascript
使用vue实现点击按钮滑出面板的实现代码
Jan 10 Javascript
js实现一个猜数字游戏
Mar 31 Javascript
基于JavaScript实现的插入排序算法分析
Apr 14 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
Jul 13 jQuery
深入了解js原型模式
May 30 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中的string类型使用说明
2010/07/27 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
JS提交form表单实例分析
2015/12/10 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
python多重继承新算法C3介绍
2014/09/28 Python
在Python中使用__slots__方法的详细教程
2015/04/28 Python
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
python 魔法函数实例及解析
2019/09/25 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
韩语专业本科生求职信
2013/10/01 职场文书
数控技术专科生自我评价
2014/01/08 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
房屋租赁协议书
2014/04/10 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
优秀英文求职信范文
2015/03/19 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers
我去timi了,一起去timi是什么意思?
2022/04/13 杂记