多重覆盖' keyup'事件

时间:2016-08-22 21:43:11

标签: javascript jquery

在我的应用程序中,我正在收听文本输入上的键盘:

$('input[type="text"]').keyup(function(){

这很好用,但是我也想听用户在文档的其余部分按任何地方按UP或DOWN键 - 所以我尝试添加以下内容(希望jquery在文本框中使用输入一个和全局一个):

$(document).keyup(function(e) {

它还没有这样做,现在选择全局的keyup。有什么方法可以让Jquery做我需要的东西吗?我觉得应该选择最具体的'在每种情况下关键,但似乎不是......

2 个答案:

答案 0 :(得分:2)

除了输入[type ='text']

之外,您可以使用这种方式在整个文档元素的任何位置按UP键时听取用户的意见
<script>
        $(document).keyup(function(e) {
           if($(e.target).is('[type="text"]')){
              return; <!-- you can handle keyup of input type text in this block -->
           } 
           else {
                <!-- handle your keyup of ducument code here -->
           }
        });
</script> 

答案 1 :(得分:1)

它应该运行两个处理程序,从更具体的元素开始。但如果不是,您可以更改第二个处理程序,使其不重叠。

$(document).on("keyup", ":not(:text)", function(e) {
    ...
});

:textinput[type=text]的速记选择器,:not()在此约束中排除了它们。