为什么我的jQuery脚本只开始在第二次,第三次等运行,但在第一次运行时却没有?

时间:2013-05-12 15:59:19

标签: jquery

我有一个简单的数据库搜索脚本,当用户在搜索字段中键入时,它会显示搜索结果列表。该脚本工作正常,只是它只在用户键入第二个字母后才开始工作。我希望它在用户输入搜索查询中的第一个字母时开始工作。例如,如果我正在搜索“玩偶”,那么当用户在搜索字段中键入字母“d”时,我希望显示搜索结果。目前,这仅在用户输入“do”后才开始发生。请给我任何建议。

jQuery的:

<script type="text/javascript">
$(function(){ 
    var index = -1;
    $(document).on('keyup','#searchField',function(e){
        if (e.keyCode == 38){ // up arrow
            index = (index == 0) ? 0 : index - 1;
            $('tr.search_row').removeClass('highlight_color');
            $('tr.search_row:eq(' + index + ')').addClass('highlight_color');
            return false;
        }
        else if (e.keyCode == 40){ // down arrow
            index = (index + 1 >= $('tr.search_row').length) ? $('tr.search_row').length - 1 : index + 1;
            $('tr.search_row').removeClass('highlight_color');
            $('tr.search_row:eq(' + index + ')').addClass('highlight_color');
            return false;
        }
        else
        {
            var str = $('#searchField').val();
            searchScript(str);
        }
        index = -1;
    }); 
});
</script>

2 个答案:

答案 0 :(得分:0)

你可以使用

.bind(“更改keyup输入”,function(){});

http://solicitingfame.com/2011/11/09/jquery-keyup-vs-bind/

答案 1 :(得分:0)

我能够看到第一个字母本身调用的查询。我怀疑问题可能出在searchScript函数中。请检查此fiddle

 Post more details about the searchScript function if you are still seeing the error.