父链接:
<a href="feedback.php" id="feed">Provide your feedback here</a>
启动fancybox的jQuery代码是......
$("#feed").fancybox();
代码在feedback.php ...
<html>
<head>
<script language="javascript">
$(document).ready(function(){
$("#feed_submit").click(function(){
//Name is alerted
alert($("#name").val());
//code to close fancy box(Not working)
$.fancybox.close();
});
});
</script>
</head>
<body>
<form method="post" name="feedback" id="feedback" action="">
<div>
<label>name</label>
<input type="text" name="name" id="name"/>
</div>
<div>
<label>feedback</label>
<input type="text" name="content" id="content"/>
</div>
<div><input type="button" name="feed_submit" id="submit" value="submit"></div>
</form>
</body>
</html>
点击提交按钮后,我需要使用jquery关闭此页面本身的精美框
我尝试过使用
$.fancybox.close();
parent.$.fancybox.close();
但这对我不起作用。如果有任何关闭此ajax表格的选项,请告诉我。
答案 0 :(得分:10)
以下代码应该有效,并且已经为很多人工作
parent.$.fn.fancybox.close();
但是,我也看到,例如in this question,jQuery在noConflict模式下运行,用户不知道。如果是这种情况,则必须将脚本修改为
parent.jQuery.fn.fancybox.close();
如果这些都不起作用,请使用Firebug for Firefox或Chrome开发人员控制台等工具查看是否有错误消息,并向我们报告它是什么。
答案 1 :(得分:7)
尝试
window.parent.$.fancybox.close();
假设 $.fancybox.close();
在父窗口中有效。
答案 2 :(得分:2)
尝试:
$("#fancybox-close").trigger('click');
答案 3 :(得分:1)
当您使用类型为iframe的fancybox时,在iframe框中您必须插入所有库,如jquery等。然后关闭iframe花式框只需使用parent。$。fancybox.close()
请记住在新窗口中打开类型为“iframe”的fancybox,在同一窗口中打开包含其他类型的fancybox。
答案 4 :(得分:1)
面对同样的问题,这是我能找到的唯一解决方法:
代码本身是:
parent.jQuery.fancybox.close();
它在一个函数中运行:
jQuery("#cancelId").click(function(){
parent.jQuery.fancybox.close();
});
希望它有所帮助,
闹热
答案 5 :(得分:0)
$.fn.fancybox.close();
这有用吗?
答案 6 :(得分:0)
//在子窗口或iframe上放置此函数:
function closeIframe(){
parent.closeIframeMain();
}
//此链接关闭此窗口
<a onclick="closeIframe();" href="#">Close window</a>
//然后在父窗口上放置此函数:
function closeIframeMain(){
jQuery("#fancybox-close").trigger("click");
}
答案 7 :(得分:0)
它肯定会起作用,只需复制并粘贴它即可:
<a href="javascript:;" onclick="jQuery('.fancybox-close').fancybox().trigger('click');">Close from Inside</a>
实际上它会触发关闭按钮,如果fancybox本身,它在大多数情况下都有效。
享受编程乐趣:)
答案 8 :(得分:0)
我遇到了同样的问题,但是使用了ASP.NET。
基本上,在页面上,我打开一个页面(里面有一个表单控件),如下所示:
$.fancybox({
href: '/ContactUs.aspx',
type: 'iframe',
padding: 60,
width: 465,
height: 670,
maxWidth: 465,
maxHeight: 670,
});
当我在FancyBox上单击关闭时,它可以正常工作,但如果我先提交它然后关闭它,fancyBox
将不会关闭,即使页面位于同一个域中。
最后,我发现你必须在打开FancyBox时设置autoSize:false:
$.fancybox({
href: '/ContactUs.aspx',
type: 'iframe',
padding: 60,
width: 465,
height: 670,
maxWidth: 465,
maxHeight: 670,
autoSize: false
});
现在应该可行了。如果这适用于其他任何人,请回复。欢呼声。
威尔
答案 9 :(得分:-1)
parent.jQuery.fancybox.close(); 用。$。 - IE8中的折痕。 有了这个 - 一切都好。