我认为这很棘手的一部分实际上是智能地接受用户输入.因此,我会说最好的办法是把你的搜索转移到一个自动完成类型的插件.一旦页面准备就绪,您将焦点传递到输入文本框,然后让插件在您搜索时执行其魔术…
然后给出一个数据表和一个这样的输入:
你可以有一个准备好的功能,如下所示:
$('#searcher').quicksearch('table tbody tr',{
'delay': 100,'bind': 'keyup keydown','show': function() {
if ($('#searcher').val() === '') {
return;
}
$(this).addClass('show');
},'onAfter': function() {
if ($('#searcher').val() === '') {
return;
}
if ($('.show:first').length > 0){
$('html,body').scrollTop($('.show:first').offset().top);
}
},'hide': function() {
$(this).removeClass('show');
},'prepareQuery': function(val) {
return new RegExp(val,"i");
},'testQuery': function(query,txt,_row) {
return query.test(txt);
}
});
$('#searcher').focus();
编辑:添加其他答案/评论,使输入固定,并阻止这个可怕的跳跃如此可笑.