2011-03-21 69 views
0

我正在使用jQuery UI自動完成搜索和打開事件。但是隻有當請求成功並且有元素時纔會調用open事件。響應成功但沒有空時似乎沒有事件發生。JQuery UI自動完成事件和空響應

我觸發請求時,這樣的顯示和隱藏一個微調的標誌:

search: function() { 
    $('.spinner').show(); 
}, 
open: function() { 
    $('.spinner').hide(); 
} 

這種運作良好,當有服務器響應元素,但如果服務器的響應是空的微調保持永遠.. 。

感謝您的回答。

PS:我不是一個人:remove spinner from jquery ui autocomplete if nothing found;)

+0

也許更好的有(這個問題)發表您的評論和START賞金! – 2011-03-21 14:47:31

+0

可能的重複[刪除從jquery ui自動完成,如果沒有發現微調](http://stackoverflow.com/questions/4316071/remove-spinner-from-jquery-ui-autocomplete-if-nothing-found) – 2011-03-21 14:48:05

+1

請看我的答案在這裏(http://stackoverflow.com/questions/4316071/remove-spinner-from-jquery-ui-autocomplete-if-nothing-found/5391023#5391023)和在這裏(http://stackoverflow.com/questions/ 4718968 /檢出-NO-成果上的jquery-UI-自動填充/ 4719848#4719848) – 2011-03-22 12:16:24

回答

1

在jQuery UI 1.9版的,你可以做類似如下:

$('#field').autocomplete({ 
    source: source_url, 
    search: function(event, ui) { 
    $('#spinner').show(); 
    }, 
    response: function(event, ui) { 
    $('#spinner').hide(); 
    } 
}); 
0

這是一個已知開放增強的jQuery UI的未來版本...

http://bugs.jqueryui.com/ticket/6777

將不得不等待和/或使用一種解決方法(例如從服務器發送特殊響應並在打開的事件中處理這種情況)。

0

如果你被困在老版本的jQuery UI中,正確的答案是使用類ui-autocomplete-loading,在請求/響應正在運行時,類ui-autocomplete-loading被添加和刪除。