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