如何使keyup事件延迟处理
2017-03-28 13:48
302 查看
一般情况是每点击一个按键都会触发一次keyup事件,但是有些时候,这样并不能满足要求,需要的是输入完毕之后才执行某函数。(比如通过扫码枪扫描图书条形码进行图书信息的录入)
这里只能采取延时执行的方法来处理这种情况,具体代码如下:
这里只能采取延时执行的方法来处理这种情况,具体代码如下:
<script type="text/javascript"> $(document).ready(function() { $("#isbn").focus(); //让id为isbn的输入框获得焦点,然后直接扫码即可读取图书信息 var last; $("#isbn").keyup(function(event){ $this=$(this); last=event.timeStamp; //利用event的timeStamp来标记时间,这样每次的keyup事件都会修改last的值,注意last必需为全局变量 setTimeout(function(){ if(last-event.timeStamp==0){ //如果时间差为0(也就是你停止输入1s之内都没有其它的keyup事件发生)则做你想要做的事 var isbn = $this.val(); $.ajax({ url: ctxAdmin + '/library/book/getBookInfoByISBN?isbn='+isbn, type: "get", dataType: "json", success: function(data) { if(data['code'] == 1 && data['obj'] != undefined){ var obj=data['obj']; $("#name").val(obj.title); $("#subName").val(obj.subtitle); $("#writer").val(obj.authors); $("#publishHouse").val(obj.publisher); $("#publishDate").val(obj.pubdate); $("#translator").val(obj.translators); $("#decoration").val(obj.binding); $("#page").val(obj.pages); $("#picture").val(obj.image); CKEDITOR.instances['introduction'].setData(obj.summary); } } }); } },1000); }); }); </script>
相关文章推荐
- 如何使keyup事件延迟处理
- 如何使keyup事件延迟处理
- 如何使用 Visual C# .NET 处理 Excel 事件
- 基于网络的物理模拟:如何处理丢包和延迟
- 以WebBrowser.DocumentCompleted 事件为例,说明用C#如何完成事件的订阅处理。
- 如何处理:下载文件的按钮在事件未完成之前防止多次点击,事件完成之后又能继续点击提交
- 如何使用Visual Studio Tools for Office创建事件处理程序
- VC中如何处理CEDIT的KEYDOWN事件?
- 如何避免打开键盘或横竖屏切换,active重启,处理界面的延迟动画
- C#中如何处理鼠标事件
- 如何取得某个菜单所绑定的所有事件处理程序
- 如何获得对窗体移动事件的处理的一个方法
- 下面的示例演示如何使用传递到事件处理方法的 GridViewCommandEventArgs 对象确定引发事件的按钮的命令名。
- Silverlight学习笔记一:DataGrid如何处理鼠标的滚轮事件
- 控制台如何像windows程序那样处理消息事件
- Android 组件学习【启发】 如何处理好多个组件的多个事件
- VC中如何处理CEDIT的KEYDOWN事件
- 如何在客户端写脚本触发一个服务器端事件处理过程.在线等.
- 如何使用C++响应COM事件处理
- 如何避免打开键盘或横竖屏切换,active重启,处理界面的延迟动画