2016-10-22 3 views
0

J'essaie de déboguer un comportement étrange sur un site Wordpress: le code à l'intérieur de la première occurrence de ready semble ne pas arriver. En raison de plusieurs plug-ins installés, je vois cela dans le code:Deux définitions de jQuery prêt

<script type="text/javascript"> 
jQuery(document).ready(function(){ (function() { ... })();}); 
</script> 

Puis, plus tard, presque à la fin de la page que je vois:

<script type="text/javascript"> 
jQuery(document).on('ready post-load', easy_fancybox_handler); 
</script> 

-t-on définition ou « prêt » préséance sur l'autre ou les deux actions auront-elles lieu?

+2

Quel est le 'comportement étrange'? –

+0

Il ne devrait pas y avoir de problème, sauf peut-être d'abord, parce que prêt est prêt ... – Ultrazz008

+0

@Loading ..: J'ai ajouté 'le code à l'intérieur de la première occurrence de prêt semble ne pas arriver' – Basj

Répondre

1

Comme documented,

Lorsque plusieurs fonctions sont ajoutées par des appels successifs à cette méthode, ils courent lorsque le DOM est prêt dans l'ordre dans lequel ils sont ajoutés.

La définition d'un gestionnaire ready deux fois est donc correcte.

Cependant:

  • Le premier est un manque }) de fuite et doit être une erreur de syntaxe (ce qui est probablement la raison pour laquelle il n'exécute pas).
  • La seconde utilise la surcharge jQuery(document).on('ready'), qui est dépréciée:

    Il y a aussi $(document).on("ready", handler), OBSOLETE jQuery 1.8 et supprimé dans jQuery 3.0. Notez que si le DOM est prêt avant la connexion de cet événement, le gestionnaire ne sera pas exécuté.

+0

@Basj Alors ça devrait marcher - et ça marche dans un violon. vous appelez jQuery après avoir référencé le fichier jquery et que vous n'avez aucune erreur dans la console. – GSerg