Скрытие / перенаправление диалогов JQuery - PullRequest
0 голосов
/ 26 августа 2011

Я пытаюсь открыть диалоговое окно jQuery с помощью AJAX.Содержимое диалога загружается из строки запроса и содержит серверные элементы управления внутри тега формы.

У меня есть GridView, где ссылка в каждой строке порождает диалоговое окно.диалог загружается нормально, но впоследствии мне нужно открыть еще одно диалоговое окно на странице, затем загрузится первое диалоговое окно.Я не могу открыть тот же диалог в следующий раз.Проверка DOM в Firebug показывает несколько «контейнеров» в конце страницы.У меня есть GridView, где один столбец содержит ссылку и пустой div.Я упростил идентификаторы элементов управления, потому что они искажены ASP.NET, но это мой код:

$('#linkId').click(function() {
    $('#panelId').dialog({
            autoOpen: true,
            height: 600,
            width: 680,
            modal: true,
            show: 'blind',
            hide: 'blind',
            title: 'More Information',
            open: function () {
                $(this).load(url).parent().appendTo("form");
            },
            close(){
                // I've also tried using these (not both at the same time)
                $(this).dialog('destroy').remove();// dialog never opens again
                $(this).dialog('disable').remove();// dialog never opens again
            }
        });
        return false;
    });
});

Я попытался добавить включенные функции в событие закрытия, но я получил то же самоеэффект.В противном случае, когда диалоговое окно в конечном итоге открывается, все работает отлично (несмотря на то, что в конце страницы есть несколько диалоговых контейнеров).

1 Ответ

3 голосов
/ 26 августа 2011

Из документации API диалога jq :

"Если вы хотите повторно использовать диалог, самый простой способ - отключить Параметр «автооткрытие» с: $ (foo) .dialog ({autoOpen: false}) и открытием это с $ (foo) .dialog ('open'). Чтобы закрыть его, используйте $ (Foo) .dialog ( 'закрыть'). Более подробное объяснение с полной демонстрацией доступно на блоге Nemikor"

...