Javascript keyup是我应该使用的吗?

Javascript keyup是我应该使用的吗?,javascript,jquery,Javascript,Jquery,我正在使用keyup事件处理程序并过滤一些元素。当没有包含我正在搜索的内容的元素时,我会显示一条没有结果的消息,并在有结果时将其删除。除了在这种情况下,这一切都很正常: 键入没有任何结果的内容。现在按住“backspace”快速删除字符。“无结果”仍然显示。似乎是时间问题,或者我不应该使用keyup。有什么想法吗 这是一个密码笔: 我认为这可能是关键: $(“#过滤器”).keyup(函数(){ var selectSize=$(this.val(); 过滤器(选择大小); });您的其他部分

我正在使用
keyup
事件处理程序并过滤一些元素。当没有包含我正在搜索的内容的元素时,我会显示一条没有结果的消息,并在有结果时将其删除。除了在这种情况下,这一切都很正常:

键入没有任何结果的内容。现在按住“backspace”快速删除字符。“无结果”仍然显示。似乎是时间问题,或者我不应该使用
keyup
。有什么想法吗

这是一个密码笔:

我认为这可能是关键:

$(“#过滤器”).keyup(函数(){
var selectSize=$(this.val();
过滤器(选择大小);

});您的
其他
部分应如下所示:(参见带注释的行//这是一个更改)。有人说,若搜索框中并没有值,“并没有结果”应该被隐藏

function filter(e) {
    var numVisible = 0;
    var addCard = $('.ourTeamCards');
    if(e) {
        var regex = new RegExp('\\b\\w*' + e + '\\w*\\b', 'i');
        $('.oneStaff').fadeOut(50).filter(function () {
            var regExists = regex.test($(this).data('regions'));
            if(regExists) {
                numVisible +=1; 
            }
            return regExists;
        }).fadeIn(50);
        if (numVisible == 0 && e) {
            $('.noResults').css('display', 'block');    
        }
        else {
            $('.noResults').css('display', 'none');
        }
    }   
    else {
      $('.oneStaff').fadeIn(50);
      $('.noResults').css('display', 'none'); //THIS IS A CHANGE
    }   
}

我对提取文本框值的方式做了一些更改。试试看,让我知道

这也将识别退格,因此它将有助于执行您想要的操作。我并没有机会看完整的代码,但在一开始就发现了这一点,所以分享给你们的建议

$("#filter").keyup(function(e) {
    var selectSize = e.target.value;
  console.log(selectSize)
    filter(selectSize);
});

干杯

我会使用
input
而不是keyup。Keyup将为任何Keyup触发,包括箭头键或其他不改变值的键<代码>输入
仅当值更改时才会激发。请尝试在keyup事件中设置一个短超时。此操作非常有效。谢谢你,非常感谢你抽出时间。