【发布时间】:2011-02-03 17:31:21
【问题描述】:
我正在通过 open 事件将外部 php 页面加载到 jQuery UI 对话框中,如下所示:
$.ajax({
url: "page.php",
success: function(data){
$("#loadDiv").dialog({
open: function(){
$(this).html(data);
},
autoOpen: false,
resizable: false,
minWidth:900,
minHeight:480,
modal:true,
title: "Add Page",
buttons: {
"Add": function() {
$.post("script.php", $("#addPageForm").serialize() ,
function(data){
if( data.search("<b>Error</b>") != -1 || data.search("<strong>Error</strong>") != -1) {
// Error occured
}else{
// Success
}
});
},
"Cancel": function(){
$(this).dialog("close");
}
}
});
}
});
(#loadDiv 只是一个隐藏在页面上的空 div)
问题是当您单击取消按钮时,它应该关闭对话框 - 但它没有。我将 FireBug 用于 FF,它告诉我错误“$(this).dialog is not a function ... $(this).dialog("close");”。当我尝试用 $("#loadDiv").dialog("open") 重新打开它时也不起作用,我认为这两者是相关的问题。
问题是对话框的内容是通过 ajax 动态加载的,因为如果我取出 ajax 部分它就可以工作。我需要弄清楚如何让它与我现在加载内容的方式一起工作。
任何建议将不胜感激!谢谢!
【问题讨论】:
标签: jquery ajax jquery-ui dialog