2010-02-12 2 views
2

Я хочу показать всплывающее окно на моей странице с помощью виджета JQuery UI Dialog.JQuery UI Dialog Issue: Close удаляет div

Чтобы реализовать это, у меня есть <div class="popup-placeholder"> на моей странице. На самом деле на странице больше одного (если это имеет значение для решения)

При щелчке кнопки я инициализирую диалог и открываю его. Инициализация всплывающего окна находится внутри клика действия, потому что он должен сделать вызов Ajax для получения содержимого всплывающего окна. (Я пробовал с инициализацией из события щелчка, но это не сработало $('div.popup-placeholder').dialog();)

var popupContext = $('#' + contextControl.id + ' > .popup-placeholder'); 
    popupContext.html(formHtml); 

    $(popupContext).dialog({ 
     bgiframe: true, 
     modal: true, 
     autoOpen: false, 
     closeOnEscape: false, 
     dialogClass: '', 
     draggable: true, 
     position: 'center', 
     resizable: false,          
     width: 600 
    }); 

По щелчку кнопки действий, форма показывает и делает то, что он должен. Теперь у меня есть тесная ссылка на всплывающее окно WHICH NOT DIALOG BUTTON, но только другая ссылка с событием, связанным с ним. Он делает это ...

$('#popup-placeholder-61').dialog('close'); 

где # всплывающее окно-заполнитель-61 такая же, как $ (popupContext)

Проблема я столкнулся в настоящее время является то, что при закрытии всплывающего окна, то же самое кнопка действия снова не отображает всплывающее окно. Похоже, что проблемы устраняются с <div class="popup-placeholder">.

Я попытался решения на следующей странице, но не помогло - Jquery Dialog Close on StackOverflow

Итак, мне нужно больше помощи

+0

Пожалуйста, включите больше коды, в частности, значение переменной formHtml. Включение отметки в примерный файл поможет людям реплицировать вашу проблему и предоставить полное решение, которое соответствует вашей проблеме. –

+0

FormHtml будет иметь базовую разметку Html и тег привязки, который при нажатии закрывает диалоговое окно. – Zuber

ответ

0

Основная проблема заключалась в том, что я искал диалоговое окно div в неправильном месте.

Посмотреть этот пост для более подробной информации ...

Jquery Dialog - div disappears after initialization

0

Попробуйте сделать код инициализации из события щелчка может быть, что, пытаясь снова перепроверьте все, что не удается открыть диалог с помощью второго щелчка ... У меня была аналогичная проблема, которую я «разрешил», создав разметку для диалога каждый раз, когда диалог должен был быть открыт.

Ошибка вашей строки не задерживается, чтобы вы могли выполнить инициализацию из события click, просто загрузите содержимое ajax в событие click и покажите диалог с диалогом («open»).

1

Моя проблема решена, но я буду изучать, почему мой предыдущий подход не сработал. Что я делал раньше, так это то, что у меня было несколько держателей мест с разными идентификаторами, и я делал только один из них диалог. Я использовал несколько селекторов JQuery для выбора соответствующего div для диалогового окна и имел проблемы, описанные выше.

Единственное изменение, которое я сделал сейчас, это то, что у меня есть единственный div, который действует как заполнитель. И это сейчас работает. Он также инициализировался отлично за пределами моего мероприятия. Так, может, это было чем-то связано с моими селекторами? Я попробую больше, и если я найду что-то, опубликую его как продолжение.

Спасибо.

1

После борьбы немного, я пришел с лучшим решением.Пожалуйста, используйте ниже линии вместо диалога («закрыть»)

$('#popup-placeholder-61').dialog("destroy"); 

Это позволит ДИВЫМ сохранить свои позиции