【jQuery】长按按钮

现在手机端的快速发展,使许多手机手势需要制作到手机版的网页过程中

网上有许多长按按钮的插件,甚至仅仅是jQuery Mobile都有长按事件

但是基于种种的兼容性问题,

只使用jquery去实现长按动作,可以在手机端与电脑端保持极强的兼容性

一、基本目标

制作一个按钮,实质上一个100x100px的灰色背景的图层,长按达2s则图层里的文字从in变成out。

二、制作过程

代码如下:

<!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:

在长按的时候同时涂黑图层上面的文字,再把鼠标拖出图层,则可以躲过系统mouseup的判定,当然,在手机上无法实现这一个动作,如果完全是写给手机的网页,完全可以不管这步,不过为了更好的兼容性,还是加上mouseout动作修正这个bug。

时间: 2024-10-11 00:58:22

【jQuery】长按按钮的相关文章

jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法

本文实例讲述了jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法.分享给大家供大家参考.具体实现方法如下: 这里主要通过val方法设置按钮的文字,并用attr方法修改disabled属性实现该功能. 主要代码如下: <html> <body> <form method="get" action="" target="box"> <input id="buttonid" ty

jQuery Mobile(jqm)按钮的隐藏和显示,包括a标签,圆角和非圆角按钮

在移动互联网时代,HTML5开发越来越收到欢迎.于是各种HTML5的框架都出来了.由于对于jquery的熟悉,jquery mobile 为多数人选择学习的对象.我也是众多追求者之一.最近一直在开发jQuery Mobile的相关应用.并颇有心得,再这里和大家一起分享一下. 好了,我们之间上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>

一款基于jquery漂亮的按钮

之前为大家分享了好多css3实现的按钮.今天给大家分享一款基于jquery漂亮的按钮.这款按钮背景下用了一张图片.当鼠标经过的时候背景用半透明div遮住.一起看下效果图: 在线预览   源码下载 实现的代码. html代码: <a class="btn" data-js="btn"><span class="btn-inr"><span class="txt-a">See This Butt

点击jQuery Mobile的按钮改变颜色

jquery-mobile-移动 我有这样的代码来改变点击一个按钮的颜色: $('.fav').live('click', function(e) { $(this).buttonMarkup({ theme: "b" }); }); 我怎样才能再次单击该按钮返回到正常颜色(C)? 有没有办法看到一个按钮的状态? 因为它是活的,那么你可以只让自己的切换: $('.fav').live('click', function() { var dotoggle = $(this).attr(&

在jQuery ajax中按钮button和submit的区别分析

在使用jQuery ajax的get方法进行页面传值,不能用submit,否则无刷新获取数据展示 点击submit提交按钮,sendPwd.php通过$_POST接收传过来的值,然后echo一段数据.然而却始终无法显示传回来的值.原因在这里: 提交按钮的类型是submit,点击之后毫无反应.因为无意发现有次点击瞬间结果出来了,又变回去了,于是发现诡异,上网一查,发现大部分都把按钮设置成button类型,于是改成button之后,问题解决了. 按钮button和submit有什么区别呢? subm

jQuery中提交按钮的灰色与恢复,文本框赋值

1.按钮的id为btnzhuce ==> 控制按钮为禁用: $("#btnzhuce").attr({"disabled":"disabled"}); ==>控制按钮为可用 $("#btnzhuce").removeAttr("disabled");//将按钮可用 2.文本框赋值 jquery 文本框赋值是利用了id来取,然后利用了val来设置对应文本输入框的值哦,还就是jquery定义增加cs

PHP+jQuery 长文章分页类 ( 支持 url / ajax 分页方式 )

/* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8 ******* 其它组件:jQuery-1.8.3.min.js + Smarty 3.1.18 + TinyMCE 4.1.6 ******* Date:2014-10-20 ******* Author:小dee ******* Blog:http://www.cnblogs.com/dee0912/*

jquery点击按钮或链接,第一次与第二次执行不同的事件

本文和大家分享一个jquery的实例,这个实例实现的是点击网页里的按钮或链接,第一次和第二次会执行不同的事件,也就是两个事件会轮流执行. <script language="javascript"> $(function(){ var f = false; $("#aijquery1").click(function(){ if(f == !f){ alert(1) }else{ alert(2) } }); }); </script> 上面

html css jquery 回到顶部按钮

今天做了个回到顶部的功能,在这里记录一下,有需要可以拿去试试! CSS部分,很简单就一个class /*回到顶部*/ .back-top { position: fixed; right: 15px; bottom: 15px; z-index: 9999; font-size: 25px; width: 40px; height: 40px; background-color: #adadad; color: #ffffff; cursor: pointer; border-radius: 2