Fancybox加载

时间:2010-08-25 12:37:31

标签: jquery fancybox

是否可以在没有document.ready()事件的情况下初始化Fancybox插件? 在FF中,它似乎是成功但不是在IE中

解释:我尝试在页面底部初始化所有jquery函数:

<script type="text/javascript">
            $(".overview_picM").fancybox({
                'titleShow': false,
                'transitionIn': 'elastic',
                'transitionOut': 'elastic',
                left: picLLeft,
                'autoScale': false,
                hideOnContentClick: true,
                overlayShow: false
            });
</script>
</body>

没有document.ready()或window.load,因为它们会变慢。

这不是jquery中的常规使用,我知道,但我有ActiveX,Java Applet或Iframe,所有这些元素都通过使用document.Ready或window.load(...)来减慢jquery的可访问性

我已经开始通过这种方法实现jquery脚本,并且它对我的许多脚本(jquery)都是成功的。

一个想法? 最诚挚的问候,

的Sebastien

编辑: 请参阅下面的说明以阐明需求和解决方案

3 个答案:

答案 0 :(得分:0)

我认为只要你把init代码放在你想要应用它的元素之后(在你的情况下它是“overview_picM”类的东西),这应该是有效的。

答案 1 :(得分:0)

只要在DOM元素加载后执行此操作就调用init无关紧要。

答案 2 :(得分:0)

首先,感谢Byron的耐心

解释并澄清我的需要:

在我的基页中,我想在<img>元素上使用fancybox来显示这个元素最大,然后加载iframe(也在基页中)。

这个iframe包含java Applet,似乎需要花费很多秒才能在DOM中加载/准备好(?)。

所以,我注意到在iframe加载过程中,我无法使用fancybox。 也许,fancybox需要在IE下准备好正确使用DOM。 在FF下,经过多次测试后没有必要。 所以,我认为IE中存在线程冲突。

最初的问题没有正确制定。遗憾。

因此,要解决此问题,我在页面底部的setTimeout中加载iframe src:

        setTimeout('initSrcIframes()',0);

        function initSrcIframes() {
            $("iframe#iframeViewer3D").attr("src", "myUrl.aspx");        

        }
</script>
</body>
</html>

通过这种方式,我可以在我的基页中尽快使用fancybox插件,而不是在加载iframe之后。我认为通过setTimeout方法,我启动新线程(在基页中)来加载iframe src而不会损害许多javascripts功能。

我希望这个答案能够澄清我的需要并帮助一些人:)

塞巴斯蒂安