jqueryUI上的开放事件间歇性工作

jqueryUI上的开放事件间歇性工作,jquery,jquery-ui,jquery-dialog,Jquery,Jquery Ui,Jquery Dialog,我有一个jqueryUI对话框,它向另一个页面发出请求并在对话框中加载内容 jQuery("#someDialog").dialog({ autoOpen: true, draggable: false, resizable: false, modal: true, open: function() { jQuery(this).load('myurl?type=something'); } });​ 但是,此代码有时只是打开对话

我有一个jqueryUI对话框,它向另一个页面发出请求并在对话框中加载内容

jQuery("#someDialog").dialog({
    autoOpen: true,
    draggable: false,
    resizable: false,
    modal: true,
    open: function() {
        jQuery(this).load('myurl?type=something');
    }
});​
但是,此代码有时只是打开对话框,而加载的内容不会显示在对话框中。我怀疑这是因为open事件中的异步代码


有没有办法解决这个问题?

我通常将内容加载到变量div中,然后在打开对话框时将其html作为文本

$('#popupWindow').load('whatever?type=something', function () {

    // using the callback function on .load() we can ensure
    // the content is always loaded before opening the dialog also 

    var _dialogBox = $('<div id="dialogBox" />');

    // put the html inside of the dialog
    _dialogBox.html( $('#popupWindow').html() );


    _dialogBox.dialog({
        autoOpen: true,
        draggable: false,
        resizable: false,
        modal: true
    });​

    _dialogBox.dialog('open');
});
$('#popupWindow').load('whatever?type=something',function(){
//使用.load()上的回调函数可以确保
//内容总是在打开对话框之前加载
变量对话框=$('');
//将html放入对话框中
_dialogBox.html($('#popupWindow').html());
_dialogBox.dialog({
自动打开:对,
可拖动:错误,
可调整大小:false,
莫代尔:对
});​
_dialogBox.dialog(“打开”);
});

在这里看不到任何问题。。。您的
#someDialog
元素是静态的吗?这些元素是否不止一个?如何打开对话框?
#someDialog
元素是静态的。
myurl
中有一个jqGrid,它向URL发出请求以加载其数据。因此,当一切顺利时,我看到在打开对话框时发出了两个调用:1)调用
myurl
,2)调用“urltoadgriddata”。然而,当modalbox中没有加载任何内容时,我只看到第一个调用,而不是后一个。嗯,这是一个非常好的技巧。然而,在我的例子中,这样做是使弹出窗口在一个新的寻呼机中打开,而不是成为一个modalbox。这可能就是为什么它会在一个新页面中打开的原因我不认为
text
是jQueryUI的方法之一:对不起,我忘了我有一个自定义的对话框功能来添加到对话框中!更新了代码。基本上,您需要动态创建div,并在其中添加html。