在我的fancybox元素的应用程序中,单击我是AJAX加载html页面。但是在那个远程页面上,我还有一些使用AJAX的javascript逻辑(我知道这很奇怪)在页面加载时加载一些数据。现在我不想显示fancybox对话框或只是继续显示加载动画,直到远程页面内的数据完全加载。 有没有办法做到这一点?
到目前为止,我真的很难看 - 我加载了一个空页面,显示在fancybox对话框中,几秒钟后,该页面上的内容被加载。因此,我在尺寸和居中方面存在问题。
答案 0 :(得分:0)
$.fancybox.showActivity()
和$.fancybox.hideActivity()
是您的朋友。根据您的要求按顺序调用它们。例如,你可以调用$ .fancybox.showActivity()作为你的ajax调用的回调(当显示初始框时)以使预加载器/动画重新出现并在实际所需页面时调用$ .fancybox.hideActivity()从后来的ajax调用中获取数据,以使动画消失。
答案 1 :(得分:0)
尝试这样的回调:
$('a.magical').fancybox({
'callBackOnShow': function() { $('#fancybox-wrap').hide(); $.fancybox.showActivity(); }
});
将a.magical替换为您的锚ID /类,并将您的fancybox配置添加到其中。
答案 2 :(得分:0)
好的,这是它的工作方式: [通过使用CUSTOM AJAX] 最初进行自定义jquery ajax调用,然后是$ .fancybox.showActivity(),点击fancybox的按钮获取临时页面。当从临时页面进行ajax调用时,在隐藏的div中填充数据,并为内联类型(而不是ajax one)fancybox开启调用进行续集调用(使用隐藏/空锚只是为了触发fancybox打开动作,然后调用$('#hidden_a')。click())。一旦显示fancybox,预加载器将关闭。