如果没有找到,从jquery ui自动完成中删除微调器

sku*_*urt 6 jquery-ui autocomplete

我想从支持jquery ui autocomplete的文本字段中删除微调器(显示正在加载的图片).由于没有"源没有返回结果"的事件,因此无法触发此操作.

$( "#q" ).autocomplete({
   source: "${createLink(mapping:'qsearch')}",
   minLength: 2,
   select: function( event, ui ) {
      foo( ui.item.id );
   },
   search: function( event, ui ) {
      bla();
   }
});
Run Code Online (Sandbox Code Playgroud)

Ben*_*ins 6

如果您坚持使用旧版本的jQuery ui,那么正确的答案就是使用该类ui-autocomplete-loading,该类会在请求/响应处于运行状态时添加和删除.


And*_*ker 5

从我的回答改编这里,添加以下代码来执行搜索完成(甚至0结果)后:

var __response = $.ui.autocomplete.prototype._response;
$.ui.autocomplete.prototype._response = function(content) {
    __response.apply(this, [content]);
    this.element.trigger("autocompletesearchcomplete", [content]);
};
Run Code Online (Sandbox Code Playgroud)

该代码将触发autocompletesearchcomplete您可以绑定到的event():

$("#q").bind("autocompletesearchcomplete", function(event, contents) {
    /* Remove spinner here */
});
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.