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?
peut-être que le tout va être reglé avec la version 1.2.2
Pierre-Luc Babin (15 janvier 2008 à 7:57 EST)
Ce bogue semble régler le tout.
Rémi Prévost (15 janvier 2008 à 11:50 EST)