jQuery FancyBox后期加载AJAX

时间:2011-02-03 20:27:54

标签: jquery ajax fancybox

在我的fancybox元素的应用程序中,单击我是AJAX加载html页面。但是在那个远程页面上,我还有一些使用AJAX的javascript逻辑(我知道这很奇怪)在页面加载时加载一些数据。现在我不想显示fancybox对话框或只是继续显示加载动画,直到远程页面内的数据完全加载。 有没有办法做到这一点?

到目前为止,我真的很难看 - 我加载了一个空页面,显示在fancybox对话框中,几秒钟后,该页面上的内容被加载。因此,我在尺寸和居中方面存在问题。

3 个答案:

答案 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,预加载器将关闭。