Как сделать Ajax-вызов в модальном диалоговом окне - PullRequest
0 голосов
/ 30 ноября 2009

Я использую модальное диалоговое окно из jQuery UI. Я хочу сделать Ajax-вызов для отображения содержимого в моем диалоговом окне.

$(function(){
    $('#myLink').live("click", function(){
        $('#lbContent').dialog('open');
        var url= $(this).attr("href");
        $('div#lbContent').empty();
        $('div#lbContent').load(url);
        return false;
    });

    $('#lbContent').dialog({
        stack:true,
        bgiframe: true,
        autoOpen: false,
        height:500,
        width:700,
        modal: true,
        resizable:true
    });
});

Теперь, когда я нажимаю на ссылку, она отображает содержимое в модальном диалоговом окне, как и ожидалось.

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

Когда я обновляю страницу и нажимаю на ссылку, она работает как положено.

Ответы [ 3 ]

1 голос
/ 17 марта 2012

Спасибо, Питер, за редактирование моего первоначального комментария. Однако после дальнейших исследований я обнаружил, что проблема Шрути является настоящей проблемой для динамического контента. Я даже дошел до дублирования ссылки джиттера.

Проблема заключается в динамическом контенте, который также использует файлы jQuery. Если я использую URL, который идет на сервер и запрашивает данные из базы данных, используя страницу Cold Fusion, я получаю те же результаты, что и Shruti, он работает в первый раз, но не при последующих обращениях. Если я использую простую HTML-страницу, на которой изображение отображается в диалоговом окне, оно будет работать всегда.

Я удалил функции jQuery со страницы с динамическим содержимым, и она работает каждый раз. Так что есть проблемы с jQuery, если он также используется в загружаемом URL.

++++++++++++++++++++++++++++++++++++++++++++++

Хорошо, через несколько минут возиться с этим ....

Если динамическая страница использует те же файлы jQuery, что и главная страница, не загружайте эти файлы в динамический скрипт. То есть главная страница является единственной страницей, которая должна загружать файлы jQuery, а не динамические страницы, которые вы пытаетесь загрузить в элемент на «главной странице». Недостатком этого является то, что динамическая страница в автономной среде не будет работать, потому что вы не вызываете jQuery UI.

Это немного странно, потому что я могу показать и скрыть стандартный тег div с динамическим содержимым без каких-либо изменений. Но когда я хочу использовать функции диалога в jQuery, все ломается. Ммм !! Все еще очень ценная библиотека JavaScript-подпрограмм - просто нужно немного ее настроить. Это программное обеспечение.

0 голосов
/ 17 марта 2012

Просто слово для тех, кто разрабатывает системы, использующие IE 7.0.

$('#lbContent').dialog({
    stack:true,
    bgiframe: true,
    autoOpen: false,
    height:500,
    width:700,
    modal: true,
    resizable:true,

Последняя запятая в списке параметров диалога приведет к тому, что код не будет работать для IE 7.0.

0 голосов
/ 30 ноября 2009

Не могу воспроизвести вашу проблему. Попробуйте добавить сжатый образец, состоящий из кода javascript + html, который последовательно воспроизводит проблему.

Также добавьте, какой браузер вы используете. А что, если в вашей консоли ошибок отображаются какие-либо ошибки.

Проверьте http://jsbin.com/opigo для рабочего образца на основе вашего кода.

И http://jsbin.com/opigo/edit для проверки кодов

...