2010-08-25 7 views
1

Est-il possible d'initier le plugin Fancybox sans l'événement document.ready()? En FF, il semble être le succès, mais pas dans IEChargement de Fancybox

Pour expliquer: J'essaie d'initialiser toutes les fonctions jquery en bas de ma page:

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

Sans document.ready() ou window.load parce qu'ils ralentissent.

Ce n'est pas à conventionelle jquery à l'aide, je sais, mais je ActiveX, Java Applet ou Iframe et tous ces éléments ralentir l'accessibilité jquery en utilisant document.ready ou window.load (...)

J'ai commencé à implémenter des scripts jquery avec cette méthode, et c'est un succès pour beaucoup de mes scripts (jquery).

Une idée? Cordialement,

Sébastien

EDIT: Voir explication pour clarifier les besoins et les solutions, ci-dessous

Répondre

0

D'abord, Merci à Byron pour sa patience

Pour expliquer et de clarifier mes besoins:

Dans ma page de base, je voudrais utiliser fancybox sur un plus grand, avant iframe élément <img> pour montrer cet élément (qui est dans la page de base aussi) être chargé.

Cette iframe contient l'applet java et semble prendre plusieurs secondes pour être load/ready (?) Dans DOM. Donc, j'ai remarqué que pendant le chargement d'iframe, je ne peux pas utiliser fancybox. Peut-être que le DOM doit être prêt à être utilisé correctement, sous IE. Sous FF, ce n'est pas nécessaire, après de nombreux tests. Donc, je pense à threading conflit dans IE.

La question initiale n'a pas été correctement formulée. Pardon.

Donc, pour résoudre ce problème, je charge iframe src dans un setTimeout en bas de ma page:

 setTimeout('initSrcIframes()',0); 

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

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

De cette manière, je peux utiliser le plugin fancybox le plus tôt possible dans ma page de base et non après iframe être chargé. Je pense que par la méthode setTimeout, je lance un nouveau thread (en page de base) pour charger iframe src sans pénaliser de nombreuses fonctionnalités de javascripts.

J'espère que cette réponse à clarifier mes besoins et aider certaines personnes de

Sébastien

0

Je pense que tant que vous mettez le code d'initialisation après l'élément sur lequel vous Comme pour l'appliquer (dans votre cas, c'est quelque chose avec la classe "overview_picM"), cela devrait fonctionner.

0

Cela n'a pas d'importance lorsque vous appelez init tant que vous le faites après le chargement de l'élément DOM.

+0

J'ai essayé mais Ie, fancybox n'a pas d'importance si tous les éléments ne sont pas chargés (iframe, ...) .Si je clique sur "overview_picM" pour afficher fancybox, avant que iframe ne soit chargé, IE renvoie quelques erreurs: "loading is null or object" (...) –