在每个keyup上运行jQuery实时搜索

时间:2014-12-13 00:06:44

标签: jquery

网站:http://holyhearttheatre.com/

在列表事件正上方有一个实时搜索功能(向下滚动一点)。

问题:如果拼写错误,则需要清除要恢复的搜索字段的文本字段。只是尝试搜索一个节目,然后拼错它。您需要擦除整个输入字段才能再次开始搜索。

我怎样才能做到这一点,如果有人说错了,它会在搜索字段中的匹配时立即搜索?

示例:有一个名为“Happy Tree”的事件。搜索单词“tree”有效,但是如果我搜索“treee”它将不返回任何结果,我将需要清除搜索字段以获得结果。

这是我最近的尝试:

var liveSearch = function(){
var $events = $('.events');
var $searchTerm = $('.search');

$($searchTerm).keyup(function () {
    var filter = $($searchTerm).val();
    if ( filter ) {
        var $found = $('.event-title:contains("' + filter + '")').closest('.events');
        $events.not($found).hide()
    } else {
        $events.show();
    }
})

}

$(document).ready(function(){
    $('.live-search').on('keyup', function(){
        liveSearch();
    });
});

好像on.keyup会是我正在寻找的?

感谢您的任何建议!

1 个答案:

答案 0 :(得分:2)

您隐藏了与$events.not($found).hide()不匹配的事件,但忘记(重新)显示匹配的事件(如果有任何隐藏的话)。类似的东西:

$found.show();
$events.not($found).hide()