我有这个功能来打开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*/
});
会触发错误;知道我做错了什么吗?
答案 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
。
希望这有帮助!