jQueryAjax模拟按键消抖(可设置抖动延迟时间)
在硬件中,按键等都会有抖动现象,如何消除抖动,不重复触发事件呢,这就要用到消抖机制了.
这是我用jQuery模拟硬件消抖原理,额,可能是吧...又不对的地方,希望有高手指点指点.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ajax消抖Demo</title>
<script type="text/javascript" src="js/jquery-2.0.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/style.css"> <script type="text/javascript">
$(function() {
var i = 1; // 计时器计时次数
var firstClick = true;
var _interval; $("input").click(function(){ // 模拟按键抖动,假定抖动延迟为1s.则1s内所有按键都判定为一次按键请求
if (i != 1) {
firstClick = false;
} else{
firstClick = true;
}
_interval = setInterval(myTimer, 200); // 计时开始
if (firstClick) { // 按键未抖动,ajax执行
$(this).val("ajax中,请骚等...")
// 模拟ajax网络延时,假设为4s,延时过程中,用户不能再次发起ajax请求
var test = setTimeout(function(){
myAjax()
},4000);
} else{ // 按键抖动中,取消ajax
//$(".msgBtn").css('display', 'block');
alert("111");
return ;
};
}); function myAjax() {
$(".msg").css({
height: '160px'
});
$(".msg").load("test.html", function() {
$("input").val("ajax done!");
});
// ajax success
} // 计时器
function myTimer() {
i++;
if (i > 5)
{
i = 1;
$(".msgBtn").css('display', 'none');
clearInterval(_interval);
}
}
});
</script>
</head>
<body style="text-align:center;">
<input type="button" value="ajax" />
<div class="msgBtn" style="display:none">上次按键抖动中...</div>
<div class="msg">userInfo</div>
</body>
</html>
这是ajax请求test.html文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="">
</head>
<body>
<h3 align="left">userInfo:</h3>
<table id="teble1" border="1" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="100px">Name:</td>
<td width="100px">cxs</td>
</tr>
<tr>
<td width="100px">Sex:</td>
<td width="100px">boy</td>
</tr>
<tr>
<td width="100px">Age:</td>
<td width="100px">24</td>
</tr>
</table>
</body>
</html>
抖动延迟时间可以自由设置,抖动过程中用户再次点击的话判定为上一次点击,也就是一段时间内用户所有的点击都判定为一次触发点击事件.
jQueryAjax模拟按键消抖(可设置抖动延迟时间)的更多相关文章
- 09A-独立按键消抖实验01——小梅哥FPGA设计思想与验证方法视频教程配套文档
芯航线--普利斯队长精心奉献 实验目的: 1.复习状态机的设计思想并以此为基础实现按键消抖 2.单bit异步信号同步化以及边沿检测 3.在激励文件中学会使用随机数发生函数$random 4.仿真模 ...
- 09B-独立按键消抖实验02——小梅哥FPGA设计思想与验证方法视频教程配套文档
芯航线--普利斯队长精心奉献 实验目的: 1.复习按键的设计 2.用模块化设计的方式实现每次按下按键0,4个LED显示状态以二进制加法格式加1,每次按下按键1,4个LED显示状态以二进制加法格式减 ...
- FPGA学习笔记(八)—— 状态机设计实例之独立按键消抖
###### [该随笔中部分内容转载自小梅哥] ######### 独立按键消抖自古以来在单片机和FPGA中都是个不可避免的问题,首先,解释一下什么叫做按键抖动,如图,按键在按下和松开的那个瞬间存在大 ...
- 按键消抖——task任务和仿真平台搭建
一.按键抖动原理 按键抖动原理:按键存在一个反作用弹簧,因此当按下或者松开时均会产生额外的物理抖动,物理抖动会产生电平的抖动. 消抖方法:一般情况下,抖动的总时间会持续20ms以内,按下按键后,等20 ...
- 09自动售货机综设实验(含按键消抖,led和状态机)
一设计功能 1.上次状态机的练习 2这次自动售货机综设 (一)对比两次的售货机 上次售货机的关键是画出状态转移图.明确输入分几种,输出是啥,有哪些状态.如下图所示 (二)系统或综合设计的经验: 既然这 ...
- Verilog HDL那些事_建模篇笔记(实验三:按键消抖)
实验三:按键消抖 首先将按键消抖功能分成了两个模块,电平检查模块和10ms延迟模块.电平检测模块用来检测按键信号的变化(是否被按下),10ms延迟模块用来稳定电平检查模块的输入,进而稳定按键信号,防止 ...
- 按键消抖-----verilog
实际系统中常用的按键大部分都是轻触式按键,如下图所示.该按键内部由一个弹簧片和两个固定触点组成,当弹簧片被按下,则两个固定触点接通,按键闭合.弹簧片松开,两个触点断开,按键也就断开了.根据这种按键的机 ...
- 按键消抖VERILOG实现
对于消抖,有很多种写法.今天分享一下我的写法. 基本思路: 1. 看图 图1 ...
- 强化版按键消抖Verilog实现
介绍:按键的物理结构导致了会有抖动现象的出现,判断按键是否真正按下,需要把抖动的部分滤波.根据经验可知,抖动一般在20ms内,所以常规的消抖方法是从变化沿出现时刻开始,延时20ms后判断按键的状态.这 ...
随机推荐
- JavaSE 学习笔记之String字符串(十四)
API:(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源 ...
- The merchant
The merchant Time Limit: 3000MS Memory Limit: 65536K Description There are N cities in a cou ...
- Flume基本概念
1 Apache Flume 1.1 概述 Flume是Cloudera提供的一个高可用,高可靠的,分布式的海量日志采集.聚合和传输的软件. Flume的核心是把数据从 ...
- SRPING MVC基本配置
作下记录,WEB.XML的配置及DispatcherServlet-context.xml的配置. 而后者的配置,有不同的形式,不要被迷惑. WEB.XML <servlet> <s ...
- nyoj_218_Dinner_201312021434
Dinner 时间限制:100 ms | 内存限制:65535 KB 难度:1 描述 Little A is one member of ACM team. He had j ...
- 网易杭研后台技术中心的博客 -MYSQL :OOM
http://backend.blog.163.com/blog/#m=0&t=3&c=mysql
- data object audit
客户提出了一个需求.想对一个表做audit. 本来这是非常简单的一个case,因为oracle自带的 audit功能就可以非常方便的实现. 实现的方式如下: BEGIN DBMS_FGA.ADD_P ...
- Adobe photoshop CC 2018安装激活教程
2017年10月,Adobe公司发布最新版Adobe CC 2018系列软件,photoshop cc 2018更是迎来惊艳的新功能.下面来分享安装和激活教程. 不会安装请加QQ:1833920353 ...
- HDU 3666
此题不难,不等式很空易就列出来了,只是要把它转化成减法形式..卡在这了... 其实取一个log对数就好了...要记住这个技巧.用基于dfs的spfa.. #include<iostream> ...
- Java时间转换
package com.fh.util; import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseE ...