2011-03-21 24 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被添加和删除。