Billet du blogue

jQuery est plus rapide que lui-même

Considérez le code suivant :

// Si vous l'ignoriez, 'jQuery' et '$' réfèrent au même objet.
jQuery(document).ready(function() {
    jQuery('#element1').mouseover(function() {
        jQuery('#element2').show();
    });
});

Et bien lorsque je charge une page contenant ce code et qu’avant que la page ne soit totalement chargée je promène ma souris au-dessus de #element, j’obtiens l’erreur Javascript ReferenceError: jQuery is not defined !

Pardon? Si la méthode sur #element2 est appelée, c’est que l’évènement mouseover a été lié à #element1. Et qui a lié cet évènement? L’objet jQuery lui-même!

Alors comment se fait-il que lorsque la fonction appelée par jQuery ne soit pas capable de référencer la variable jQuery?

Pour l’instant, la solution que j’utilise est d’utiliser la fonction try et de tenter de manipuler la variable jQuery.

jQuery('#element1').mouseover(function() {
    try { jQuery = jQuery; } 
    catch (e) { return false; }
    jQuery('#element2').show();
});

Quelqu’un connait-il une meilleure solution?

Posté le avec les tags: et .

Commentaires fermés

Les commentaires pour ce billet ont été désactivés un mois après la date de publication de ce-dernier. Vous désirez exprimer votre opinion sur ce billet malgré le fait que les commentaires aient été désactivés ? Utilisez le formulaire de contact.


Fil atom des commentaires de ce billet2 commentaires