重新调用它时,jquery ui对话框不是一个函数

时间:2012-02-29 20:13:51

标签: jquery ajax jquery-ui dialog

我有这个功能来打开jquery ui对话框

function pop_up(div, titulo){
                        $( "#" + div ).dialog({
                            autoOpen: false,
                            show: "explode",
                            hide: "explode",
                            modal: true,
                            minHeight: 550,
                            height: 'auto',
                            width: 'auto',
                            title: titulo

                        });
            $( "#" + div ).dialog( "open" );
            return false;

        }

我把它称为同一个隐藏的div:

pop_up('pop', 'my title');

Wich工作正常(我可以打开和关闭我想要的次数)但是如果我在#div中加载一些内容,我会得到这个firebug错误(在下一个打开对话框的内容中)

$("#" + div).dialog is not a function
[Parar en este error]   

title: titulo

基本上

pop_up('pop', 'my title');   /* OK*/
$('#pop').load('somefile.html',function(){
    pop_up('pop', 'some title');   /* CRASH*/
});

会触发错误;知道我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

在您的示例中,您正在呼叫pop_up(),其ID为 div 。我不确定这是一个很好的id值,但是在下一行代码中你尝试将'somefile.html'加载到 #pop 中可能尚未创建。然后,您尝试创建一个新的pop_up,它引用正在加载的相同对象( #pop )。

这会有用吗?

pop_up('div1', 'my title');
$('#div1').load('somefile.html',function(){
    pop_up('pop', 'some title');
});

这里我们使用id为 div1 的对话框。然后我们将'somefile.html'加载到该对话框中。加载完成后,我们会创建一个名为 pop 的新pop_up

希望这有帮助!