您的位置:首页 > 其它

如何使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>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: