2010-08-25 131 views
1

是否可以啓動沒有document.ready()事件的Fancybox插件? 在FF,這似乎是成功的,但不是在IEFancybox loading

要解釋一下:我嘗試在我的頁面的底部,以初始化所有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的conventionnal使用,我知道,但我有ActiveX,Java程序或iframe而這一切的元素使用的document.ready或window.load(...)

減緩jQuery的無障礙我已經開始通過這種方法實現jQuery腳本,並且它對我的許多腳本(jquery)來說都是成功的。

一個想法? 最好的問候,

塞巴斯蒂安

編輯: 見解釋澄清的需求和解決方案,下面

回答

0

首先,感謝拜倫爲他的耐心

爲了解釋和澄清我的需要:

在我的基地頁,我想用的fancybox的<img>元素,以顯示這個元素最大,IFRAME前(也在基本頁面中)被加載。

此iframe包含Java Applet,似乎需要花費很多秒才能在DOM中加載/準備好(?)。

所以,我注意到,在iframe加載期間,我不能使用fancybox。 也許,fancybox需要DOM準備在IE下正確使用。 在FF下,經過多次測試後沒有必要。 所以,我認爲在IE中線程衝突。

最初的問題沒有正確制定。抱歉。

因此,要解決這個問題,我在頁面底部加載IFRAME SRC中的setTimeout:

 setTimeout('initSrcIframes()',0); 

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

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

通過這種方式,我可以在我的基地頁儘快使用的fancybox插件,而不是在iframe被加載後。我認爲通過setTimeout方法,我開始新的線程(在基本頁面)加載iframe src而不懲罰許多javascripts功能。

我希望這個答案澄清我的需要,並幫助一些人:)

塞巴斯蒂安

0

我認爲,只要你把初始化代碼元素後,你會喜歡應用它(在你的情況下,它是「overview_picM」類的東西),這應該是工作。

0

只要您在DOM元素加載完成後調用init,它就無關緊要。

+0

我試過,但在IE中,如果沒有加載的所有元素的fancybox不要緊(IFRAME,...) 。如果我點擊「overview_picM」顯示fancybox,在iframe加載之前,IE會返回一些錯誤:「loading is null or not object」(...) – 2010-08-25 13:36:15