您的位置:首页 > Web前端 > JavaScript

js 键盘监听事件

2017-08-25 14:30 585 查看
今天在模仿百度一下的页面,实现搜索框的效果。通过baidu的接口实现了输入数据的提示,当我给键盘添加监听事件的时候就出了问题。

首先是监听这个输入框里面的内容更改时 就改变提示的内容。所以我给他添加了onkeyup的事件

$("#txt").on("keyup",function(event){
var txt = $("#txt").val();
if(event.keyCode != 38 && event.keyCode != 40){
getData(txt);
}

});


后面由于要实现按下上下键实现选中不同的li我就又添加了点击事件onkeydown

$("#txt").on("keydown",function(event){
if(event.keyCode == 38 || event.keyCode == 40){
changeSelect(event.keyCode);
return false;
}
});


然后发现当触发了向下键按下的时候,选中的是改变了,但是当我松开按键的时候又出发了Onkeyup的事件,那么怎么控制触发了onkeydown后就不触发onkeyup呢?这个可以使用阻止事件发生,不过一般情况下我们不会同时对一个元素同时使用两个方法,分开使用,或者通过监听特定的event的事件来使用。

比如

$("#txt").on("keydown",function(event){
if(event.keyCode == 38 || event.keyCode == 40){
changeSelect(event.keyCode);
}else{

}
});
$("#txt").on("keyup",function(event){
var txt = $("#txt").val();
if(event.keyCode != 38 && event.keyCode != 40){
getData(txt);
}

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