Диалог работает один раз в IE - PullRequest
0 голосов
/ 29 марта 2009

Я надеюсь, что кто-то может помочь с этой проблемой. Я использую диалоговое окно, которое появляется при нажатии на ссылку с тем же классом. Проблема в том, что ссылка отлично работает один раз, но если я щелкаю ее снова или другую ссылку с тем же классом, тогда загружается только оверлей, но не окно контента только в IE. Отлично работает в Firefox. Мой сценарий включает в себя сообщение AJAX, если я удаляю код AJAX, то окно работает нормально при каждом клике.

Мой код:

$().ready(function() {

    $('#dialog').dialog({
        autoOpen:false,
        title:  $(this).attr("title"),
        modal: true, width: 450, height:"auto", resizable: false,
        close: function(ev, ui) { $(this).remove(); },
        overlay: {
            opacity: 0.5,
            background: "black"
        }
    });

   $(".mybutton").click(function(){

        $.post($(this).attr("href"), { },
            function(data) {
                $('#dialog').html(data);

            }

        );
        $('#dialog').dialog('open');
        return false;
    });

});

У меня есть несколько ссылок с классом "mybutton" и div с идентификатором #dialog. Я также использую последнюю версию jQuery и пользовательского интерфейса. Любая помощь будет принята с благодарностью. Спасибо

Я использую IE8, jQuery 1.3.2, jQuery UI 1.7.1

Ответы [ 3 ]

0 голосов
/ 30 марта 2009

переместить открытие в обратный вызов ...

$('#dialog').html(data).dialog('open');
0 голосов
/ 13 сентября 2010

У меня была такая же проблема. Я решил это, управляя состоянием Диалога сам ... создавая новый и избавляясь от него каждый раз.

function makeDialog()
{
     var html = '';
     html += '<div>My dialog Html...</div>';

     return $(html).dialog(
     {
          position: 'center',
          modal: true,
          width: 518,
          height: 630,
          autoOpen: false,
          close: function() { $j(this.remove(); }
     });
}
0 голосов
/ 30 марта 2009

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

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