Просто закройте автозаполнение, когда диалоговое окно закрыто:
$("#dialog").dialog({
close: function() {
$('#tags').autocomplete('close');
}
});
Посмотрите это в действии: http://jsfiddle.net/william/3Yz9f/1/.
Обновить
Это зависит от того, что вы подразумеваете под словом «общий». JavaScript очень ориентирован на события. Итак, изначально вы хотите, чтобы автозаполнение закрывалось при закрытии диалога, следовательно, первая часть ответа. Конечно, вы можете привязать его к некоторым косвенным событиям, таким как автозаполнение размытия или скрытия (вам может потребоваться создать специальное событие для скрытия), но это дает вам небольшой риск того, что они могут не сработать, поскольку они косвенные. .
Теперь вы хотите, чтобы он закрывался при перетаскивании диалогового окна; ну это тоже не сложно; вы можете добиться этого с помощью события dragStart
для диалога, но это два разных события, оба в диалогах, а не автозаполнение. Я не вижу никаких косвенных событий в самом виджете автозаполнения при перетаскивании диалогового окна.
Если ваша проблема связана с виджетом автозаполнения по идентификатору, вы можете использовать селектор на основе контекста, например. используйте $('.ui-autocomplete-input', this)
вместо $('#tags')
в обработчиках событий диалога.
person
William Niu
schedule
13.09.2011