ui Dialog在IE中运行一次

时间:2009-03-29 19:31:38

标签: javascript jquery

我希望有人可以帮助解决这个问题。我正在使用ui Dialog弹出单击同一个类的链接。问题是链接工作很好但是如果我再次点击它或同一个类的另一个链接那么只有加载但不加载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”和一个id为#dialog的div。我也在使用最新版本的jQuery和ui。 任何帮助将不胜感激。感谢

我正在使用IE8,jQuery 1.3.2,jQuery UI 1.7.1

3 个答案:

答案 0 :(得分:0)

默认情况下,帖子是异步完成的。看起来你希望它是同步的。设置数据后,尝试将对话框的打开移动到回调中,而不是单击函数 - 可以在回调返回之前执行。

答案 1 :(得分:0)

将open打开回调...

$('#dialog').html(data).dialog('open');

答案 2 :(得分:0)

我遇到了同样的问题。我通过自己管理Dialog的状态来解决它...创建一个新的并且每次都处理它。

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(); }
     });
}