удалить спиннер из JQuery UI автозаполнения, если ничего не найдено - PullRequest
6 голосов
/ 30 ноября 2010

Я хочу удалить спиннер (рисунок, который показывает, что он загружается) из текстового поля, поддерживающего автозаполнение jquery ui.Поскольку нет события для «никаких результатов, возвращаемых источником», a не может вызвать это.

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

Ответы [ 5 ]

6 голосов
/ 17 августа 2011

Если вы застряли на более старой версии jQuery ui, правильный ответ - использовать класс ui-autocomplete-loading, который добавляется и удаляется во время выполнения запроса / ответа.

5 голосов
/ 22 марта 2011

Адаптировано из моего ответа здесь , добавьте следующий код для выполнения после завершения поиска (даже с 0 результатами):

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

Этот код вызовет событие (autocompletesearchcomplete), который вы затем можете привязать к:

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

Надеюсь, что это поможет.

3 голосов
/ 14 февраля 2013

Начиная с jQuery UI v1.9, вы можете сделать что-то вроде следующего:

$( "#q" ).autocomplete({
  source: "${createLink(mapping:'qsearch')}",
  select: function( event, ui ) {
    foo( ui.item.id );
  },
  search: function( event, ui ) {
    $( "#spinner" ).show();
  },
  response: function( event, ui ) {
    $( "#spinner" ).hide();
  }
});
3 голосов
/ 01 декабря 2010

Вы можете редактировать CSS и удалить счетчик.

$ ("object_that_has_the_spinner"). RemoveClass ("ui-autocomplete-loading");

1 голос
/ 21 марта 2011

Это известное открытое улучшение для будущих версий jQuery UI ...

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

Придется подождать и / или использовать обходной путь (например, отправить специальный ответ с сервера и обработать этот случай в событии open).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...