JQuery UI - Как связать событие изменения со списком? - PullRequest
2 голосов
/ 11 августа 2011

Таким образом, проблема в том, что выпадающий список автозаполнения инициализируется без события изменения.Я хочу связать его позже, но документация кажется неадекватной о комбобоксе.

Код, который не работает:

$('#select').combobox();
...
$('#select').bind( "autocompletechange", function(event, ui) {
  alert('changed');
});

Я предполагаю, что метка события неверна, так как встроенныйярлык на выпадающем списке «выбран», например, $('#select').combobox({selected : function(ev,ui) { alert('selected'); }}); работает, но я не могу использовать его таким образом.

Итак, есть идеи, как правильно обозначить событие?Я просто не могу найти это в документации.

РЕДАКТИРОВАТЬ: На самом деле я нашел, где была моя проблема.$('#select').combobox(); просто отображает выбор для ввода автозаполнения.Вход, который он создает, имеет идентификатор, подобный id='select-autocomplete', поэтому для привязки и события к этому комбинированному списку - селектор должен быть на этом входе вместо выбора.Итак рабочий код:

$('#select').combobox();
    ...
$('#select-autocomplete').bind( "autocompletechange", function(event, ui) {
    alert('changed');
});

1 Ответ

0 голосов
/ 03 января 2013

Итак, я нашел более ясное решение, чем привязка события к созданному .ui-combobox-input.Вы должны найти в выпадающем списке место инициализации ввода и найти параметр select.Внесите изменения в эту часть кода:

select: function( event, ui ) {
    ui.item.option.selected = true;
    that._trigger( "selected", event, {
        item: ui.item.option
    });
    that.element.trigger('change');// here is the trick
},
...