是否可以在没有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
编辑: 请参阅下面的说明以阐明需求和解决方案
答案 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功能。
我希望这个答案能够澄清我的需要并帮助一些人:)
塞巴斯蒂安