Диалоговое окно JQuery UI Проблема: Close удаляет div - PullRequest
2 голосов
/ 12 февраля 2010

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

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

При нажатии кнопки я инициализирую диалог и открываю его. Инициализация всплывающего окна происходит внутри щелчка действия, потому что он должен сделать Ajax-вызов для получения содержимого всплывающего окна. (Я попытался удалить инициализацию из события click, но это не сработало $('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
    });

При нажатии кнопки действия форма показывает и выполняет то, что должна. Теперь у меня есть близкая ссылка во всплывающем окне, КОТОРАЯ НЕ КНОПКА ДИАЛОГА, а просто еще одна ссылка с привязанным к ней событием. Это делает это ...

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

где # popup-placeholder-61 совпадает с $ (popupContext)

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

Я попробовал решения на следующей странице, но не помогло - Диалог Jquery Закрыть в StackOverflow

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

Ответы [ 4 ]

1 голос
/ 09 июля 2015

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

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

Это позволит div сохранить свою позицию

1 голос
/ 12 февраля 2010

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

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

Спасибо.

0 голосов
/ 16 февраля 2010

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

См. Этот пост для более подробной информации ...

Диалог Jquery - div исчезает после инициализации

0 голосов
/ 12 февраля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...