2 votes

Exécution de jQuery dans la fonction $(window).load() mais pas dans la fonction $(document).ready

J'ai cette fonction existante qui va afficher des icônes dans une page web en utilisant le plugin de position jQuery UI :

<script type='text/javascript'>
jQuery( document ).ready( function( $ ) {
var element_selector='.test';
if ( $(element_selector).length !== 0) {

//jQuery UI Position code here

}

 });
</script>

Cette fonction se trouve près de la section du pied de page du code HTML, bien que dans certains endroits, elle se trouve dans la section de l'en-tête. Quelqu'un m'a suggéré de charger ce jQuery dans la fonction $(window).load(). La raison est que l'événement $(document).ready est déclenché lorsque le DOM est chargé, donc il est déclenché lorsque la structure du document est prête, mais avant que les images ne soient chargées.

L'événement $(window).load() est déclenché après le chargement de l'ensemble du contenu. La méthode .position() risque donc de ne pas calculer la position correcte si elle est déclenchée trop tôt (avant que les images ne soient chargées).

Si c'est vrai, comment réviser le chargement ci-dessus dans $(window).load(). Merci de votre compréhension.

MISE À JOUR : J'ai changé de :

jQuery( document ).ready( function( $ ) {

A cela :

jQuery(window).load(function($) {

Et j'obtiens cette erreur dans la console :

Uncaught TypeError: object is not a function 

Il échoue sur cette ligne :

$(divname515e62e8355b0).children().wrapAll('<div class="mydoc cf">');

où divname515e62e8355b0 est le sélecteur défini ici :

var divname515e62e8355b0 = '#test_selector';

2voto

Kaloyan Points 7034
jQuery(window).load(function($) {
    var element_selector='.test';
    if ( $(element_selector).length !== 0) {
        // Do stuff
    }
});

0voto

Travis J Points 28588

Je pense qu'il est possible que la fonction document ready de jquery se déclenche parfois avant que les images ne soient entièrement prêtes. J'ai constaté que c'était le cas lors du développement de sites en parallaxe. Utilisez du javascript simple, attachez à l'événement window.onload comme ceci

<script type='text/javascript'>
 window.onload = function(){
  var element_selector='.test';
  if ( $(element_selector).length !== 0 {

  //jQuery UI Position code here

  }
 };
</script>

-1voto

Bharat Chodvadiya Points 637

La fonction JQuery window.onload est utilisée comme suit.

<script type="text/javascript">
window.onload = function() {  

 var element_selector='.test';
 if ( $(element_selector).length !== 0 {

 //jQuery UI Position code here

 }
}
</script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X