js 键盘监听事件

来源:互联网 发布:mac连接wifi开热点 编辑:程序博客网 时间:2024/06/03 05:22

今天在模仿百度一下的页面,实现搜索框的效果。通过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);            }        });
原创粉丝点击