帮助jQuery在keyup上显示/隐藏

时间:2010-12-08 06:43:50

标签: jquery

基本上我有一个文本框,当我在框中键入字符时,它隐藏了我的表中不包含文本的行。我如何改进以下代码,以便重新评估函数,以便在按下退格键时它再次开始显示行?

据我所知:

$("#txtFilter").keyup(function () {
                var text = $("#txtFilter").val();
                if () {
                    $(".tableStripe .tdName:not(:contains(" + text + "))").closest("tr").show();
                }
                else { 
                    $(".tableStripe .tdName:not(:contains(" + text + "))").closest("tr").hide();
                }
            });

3 个答案:

答案 0 :(得分:1)

您需要将event var添加到回调函数中,然后指定退格键代码:

$("#txtFilter").keyup(function(event) {
    var text = $("#txtFilter").val();
    if (event.keyCode == 8) { // 8 = keycode for backspace
        $(".tableStripe .tdName:not(:contains(" + text + "))").closest("tr").show();
    } else { 
        $(".tableStripe .tdName:not(:contains(" + text + "))").closest("tr").hide();
    }
});

对于更多javascript密钥代码,请搜索“javascript密码”

进行谷歌搜索

答案 1 :(得分:1)

尝试这个

var code = (e.keyCode ? e.keyCode : e.which);
 if(code == 8) { //Enter keycode
   //Do something
 }

答案 2 :(得分:0)

试试这个:

$("#txtFilter").keyup(function () {
      $(".tableStripe tr").hide();
      setTimeout(function(){
            var text = $("#txtFilter").val();                                
            $(".tableStripe .tdName:not(:contains(" + text + "))").closest("tr").show();
      },10);
});