Pourquoi FF sur OS X perd-il jQuery-UI dans le gestionnaire d’événements click?

Dans une page Web utilisant jQUery 1.7.1 et jQUery-UI 1.8.18, si je produis $ $ .ui dans une zone d’alerte lorsque le document est prêt, j’obtiens [object Object]. Cependant, lors de l’utilisation de Firefox, si je produis $ .ui dans un gestionnaire d’événements click, le résultat est «non défini». Avec d’autres navigateurs (dernières versions d’IE, Chrome et Safari), le résultat est toujours [object Objet] lorsque vous cliquez sur le lien.

Voici ma page HTML:

       $(document).ready(function () { alert($.ui); // ALERT A $(document).on("click", ".dialogLink", function () { alert($.ui); // ALERT B return false; }); });    Click me!   

Dans cet article, j’ai réduit à sa forme la plus simple un autre problème que j’avais décrit ici: $ (this) .dialog n’est pas une fonction . J’ai créé un nouveau message pour des raisons de clarté, car la vraie question est différente de celle d’origine, maintenant que le problème était résolu.

METTRE À JOUR:

SI je remplace mes alertes par simplement alert($); Je reçois ce résultat pour l’alerte A:

 function (selector, context) { return new jQuery.fn.init(selector, context, rootjQuery); } 

et celui-ci pour l’alerte B:

 function (a, b) { return new d.fn.init(a, b, g); } 

Cela n’a aucun sens pour moi, même si je ne comprends peut-être pas assez ce $ est $ .

MISE À JOUR 2:

Je ne peux que reproduire ce problème à l’aide de Firefox sous OS X. Sous Firefox sous Windows 7, tout va bien.

Je pense que vous devez avoir un add-on dans votre installation de Firefox sur OSX qui se moque de la page; Plus précisément, je pense que cela charge une version comprimée de jQuery dans la page après chargement, ce qui est une chose étrange à faire, mais explique le comportement que vous observez. Votre alerte de la fonction $ indique clairement qu’elle passe d’une version non compressée ( return new jQuery.fn.init(selector, context, rootjQuery); ) à une version compressée ( return new d.fn.init(a, b, g); ), et le ré-chargement de jQuery remplacerait $ par une toute nouvelle version, ce qui signifie que les ajouts de jQuery UI seraient supprimés. Par exemple, quelque chose qui charge une jQuery compressée après le chargement de la page correspond aux symptômes.

En l’absence d’un module complémentaire (ou d’un logiciel malveillant, je suppose), rien $.ui que $ ou $.ui soit redéfini avec la page que vous avez publiée. Je l’ai maintenant essayé sur Chrome 17, Firefox 11 et Opera 11. sous Linux (Ubuntu 11.10), ainsi que IE9, Firefox 5, Safari 5 et Opera 11 sous Windows 7. Ils fonctionnent tous comme prévu.

Je voudrais désactiver tous les add-ons et réessayer. Si cela se produit toujours, j’effacerais complètement Firefox de la machine et le réinstallerais à partir de zéro.