簡體   English   中英

除非我按下鍵,否則jQuery自動完成功能無法正確加載結果,並且不會顯示菜單

[英]jquery Autocomplete is not loading the results correctly and menu doesn't show unless I press down key

這就是我所擁有的:

    searchTimeoutID;
    InitQuickSearch = function() {
        $( 'input#quick-search' ).autocomplete({
            source: []
        });

        $('input#quick-search', document).on('keyup', function(e) {
            switch(e.which) {
                default: // live search
                    window.clearTimeout(searchTimeoutID); // remove timer
                    var str = $(this).val(); // search string
                    if (str !== '') { // do the search
                        searchTimeoutID = window.setTimeout(LiveSearch, 100);
                    }
                break;
            }
        });
    };

    LiveSearch = function() {
        var str = $('input#quick-search').val();
        if(str !== '') {
            $.ajax({
                type: 'POST',
                url: '/livesearch',
                data: { query: str },
                cache: false,
                success: function(data){
                    var results = data.split(',');
                    alert(results); // displays correct results here

                    $( 'input#quick-search' ).autocomplete( 'option', { source: results });
                },
                error: function(response) {
                    printError(response);
                }
            });
        }
        return false;
    };

當我使用alert(results)輸出result變量時,這些值看起來正確。

但是,當我嘗試更新自動完成中的值時,它不會顯示正確的值。 另外,我必須按下向下鍵才能顯示菜單。

$('input#quick-search').autocomplete('option',{來源:結果});

我究竟做錯了什么?

我只需要更改:

searchTimeoutID = window.setTimeout(LiveSearch, 100);

至:

LiveSearch();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM