Javascript Fancybox afterClose事件不工作
我在关闭后使用fancybox API时遇到问题 当人们点击此按钮时,我打开此功能:Javascript Fancybox afterClose事件不工作,javascript,jquery,fancybox,fancybox-2,Javascript,Jquery,Fancybox,Fancybox 2,我在关闭后使用fancybox API时遇到问题 当人们点击此按钮时,我打开此功能: <a class="fancybox fancybox.iframe btn" href="myurl.php"></a> 当我关闭页面时,它不会重新加载页面。有人能帮我吗?谢谢大家! 尝试使用onClose事件: $('.fancybox.iframe') .fancybox({ arrows : false, padding: 0, overlay: {
<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
当我关闭页面时,它不会重新加载页面。有人能帮我吗?谢谢大家! 尝试使用
onClose
事件:
$('.fancybox.iframe')
.fancybox({
arrows : false,
padding: 0,
overlay: {
locked: false
},
onClosed: function() {
location.reload();
}
});
根据API,在关闭之前不存在事件,但存在onClose
您应该使用
$('.fancybox.iframe').fancybox({
arrows: false,
padding: 0,
helpers: { overlay : {closeClick: false} },
beforeClose: function () {
parent.location.reload(true);
}
});
(请注意,fancybox版本1和版本2的语法不同。以上是针对fancybox2的)为避免进一步混淆,请进行一些澄清:
基于你的html
<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
(valid)fancybox.iframe
类告诉fancybox它应该处理的内容类型,但您不使用它将选择器绑定到fancybox
请参见
注意:这是针对fancybox v2.x的。HTML类中有一个错误,句点(.)应替换为空格():@AdrianForsius:不是错误,fancybox.iframe
是fancybox v2.x的有效特殊类。OP似乎正在使用且beforeClose
是有效的API选项……总之,onClose
也不是fancybox v1.3.x的有效API选项。它应该是onClosed
您使用的parent.location.reload(true)代码>如果(且仅如果)希望从iframe重新加载父对象,但在OP的情况下,fancybox正在主页中打开,因此不需要它。我猜afterClose:function(){location.reload();}将执行与之前相同的操作:function(){parent.location.reload()}。这两个都能工作谢谢你,这对我很有帮助,也谢谢你添加了它。iframe不再需要了,虽然它也有:)嘿,JFK,它工作正常,但自从我删除了jquery代码中的.fancybox.iframe之后,布局已经完全改变了。如果我在jquery中添加.fancybox.iframe,那么在关闭fancybox后页面不会重新加载。你有小费吗?ThanksSmall note,在中找不到overlay属性spec@Thempower:我从未说过您不需要fancybox.iframe
类;您需要它来告诉fancybox使用iframe,但您没有使用它将选择器绑定到fancybox,这有意义吗?。请勾选我答案中的数字3。另外,您可能需要为iframe设置preload:false
,检查是否有进一步的参考。@Kenneth:它确实存在,但它是helpers
API选项的子集。我用正确的代码和JSFIDLE引用更新了我的答案。谢谢
<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
jQuery(document).ready(function ($) {
$('.fancybox').fancybox({
arrows: false,
padding: 0,
helpers: {
overlay: {
locked: false
}
},
afterClose: function () {
location.reload();
}
});
}); // ready