编辑:我在使用iframe模式框中的jquery在父页面上重新加载div时遇到问题。
父页面上有什么内容? - 只是一个名为“#hidden”的div,它加载一个名为“getcontent.php”的单独的php页面
Iframe模式框上有什么? - 只是一个表格。在表单提交上,它将转到提交页面,我在数据库中进行所有更新。完成所有更新后,我关闭模态框并刷新div的功能进入iframe内部
这是我的代码:
$(document).ready(function() {
$('#hidden').load('getcontent.php');
parent.$.fallr('hide', function(){
});
});
我希望这段代码a)刷新父页面上的div #hidden,然后b)关闭我的模态框。到目前为止关闭模态框工作完美!刷新div不会
答案 0 :(得分:1)
那里有functinception
:
parent.$.fallr('hide', function(){
function(){
答案 1 :(得分:1)
在你的回调函数中你创建了另一个函数,但你没有对它做任何事情。它被创造并扔掉了。如果你删除了最里面的函数,我想它会更好地为你加载:
parent.$.fallr('hide', function(){
$('#hidden').load(
'admin/getcontent.php',
{ pageID : "<? echo $_REQUEST['pageID']; ?>" }
);
});
可能也是查询字符串失败的原因。不确定它是否能够正确编码。但是,如果将它放在data-parameter中,它应该这样做。见上文。
所以,既然我们已经得到了一个更清晰的解释,并且摆脱了额外的功能和查询字符串(后者可能无论如何都工作正常),我们可以向前推进。
使用当前代码,您要求对话框中的#hidden div加载内容。但是对话框中没有#hidden div,它位于父对象上。使用父级进行前缀。会解决这个问题,但我们还有另一个问题。我们告诉对话框在对话框加载后立即刷新div。那不是我们想要的。我们希望它在关闭对话框时刷新,对吗?因此将其移入fallr回调应该可以解决这个问题。这应该在父母的上下文中运行,所以没有父母。需要前缀。
$(document).ready(function() {
parent.$.fallr('hide', function(){
$('#hidden').load('getcontent.php');
});
});
但是,这或多或少是我们之前所导致的问题,因为上下文不再存在。
所以,对我来说,问题是你正在尝试与孩子的父母一起做事。在我看来,父母应该是做事的人。因此,当对话框准备好关闭时,它应调用父关闭对话框并自行更新的函数:
//From an event on the dialog
parent.closeDialogAndRefresh();
//On the parent define it
function closeDialogAndRefresh() {
$.fallr('hide');
$('#hidden').load('getcontent.php');
}
如果这不起作用。尝试启动一个定时器,在50ms之后调用closeDialogAndRefresh或类似的东西。
我认为真正的问题是你使用IFrame而不是从一些体面的UI框架中浮动div。希望你能够到达目的地。