Я создаю диалог jQuery обычным способом, $('#MyDlg').dialog(...)
и отображает его. В какой-то другой функции я хочу ее закрыть, поэтому я $('#MyDlg').dialog('close')
, но ничего не происходит.
После некоторого тестирования я обнаружил, что, если я сохраню ссылку на объект из создания диалога, сделаю его доступным для другой функции и вызовет dialog('close')
, диалог закрывается, как ожидалось.
Разве это не должно работать так, как я пытался в первую очередь? Или я чего-то не хватает?
Комментарий Фредерика Хамидиса в правильном направлении. Диалог DIV перестраивается в исходном местоположении DOM с помощью вызова Ajax, поэтому другая функция выбирает этот "недиалогизированный" DIV, а не первый. Я получаю DOM, содержащий два DIV с одинаковым идентификатором. Нехорошо.
Я перенесу диалог div в часть макета, которая не будет восстановлена.
MyDlg
id?