2010-02-24 4 views
1

J'ai écrit un plugin jQuery et il fonctionnait bien pour toutes les versions jusqu'à 1.4.1. Maintenant que jQuery a été mis à jour vers la version 1.4.2, il ne fonctionne plus entièrement. J'ai un tas de tests unitaires et dans la dernière version seulement 32 des 300+ passes.Plugin cassé après la mise à jour de jQuery à 1.4.2

J'ai vérifié 1.4.2 changelog mais tout ce qu'il dit est qu'il y avait quelques améliorations de performance et c'est tout.

Voici le changelog:

Performance Improvements: 
· The performance of calling .bind() and .unbind(). 
· The performance of .empty(), .remove(), and .html(). 
· The performance of inserting a single DOM node into a document. 
· The performace of calling $("body"). 

Bug Fixes: 
· Remove existing foo[] when traditional = false in param. 
· Problem with getJSON callback does not firing. 
· Removed the Need for setArray. 

Je ne l'utilise pas des pièces mentionnées dans le bogue section fixe. Y a-t-il eu d'autres changements dans cette version qui pourraient casser mon code? Je ne sais pas vraiment par où débuter le débogage.

Mon code d'extension est disponible here et les tests unitaires défaillants peuvent être trouvés here. Une fois de plus, changer jQuery en 1.4.1 fait passer tous les tests unitaires.

+0

Avez-vous des messages d'erreur lorsque vous essayez d'utiliser le plugin? Quel genre de tests échouent? –

+0

Je ne reçois aucune erreur/avertissement. J'ai testé les tests unitaires et le plugin lui-même contre JSLint afin de trouver qu'il n'y a pas de points-virgules manquants ou d'autres problèmes. Dans la plupart des navigateurs, presque tous les tests échouent. C'est un peu mieux dans IE mais le plugin n'est toujours pas utilisable. J'ai remarqué que la plupart des tests qui suppriment la fonctionnalité du plugin sont encore ok mais c'est probablement parce que ces fonctionnalités ne sont pas activées correctement. – RaYell

Répondre

1

Je suggère de vérifier les endroits où vous appelez $.data() pour récupérer la valeur - il retourne maintenant null ou undefined comme j'ai testé alors que le plug-in MU a cessé de fonctionner.

+0

Non, je ne pense pas que ce soit le cas. Il retournait 'undefined' avant et il le fait maintenant. – RaYell

+0

Sur la deuxième pensée, ce n'est pas exactement le problème mais c'est proche. J'utilisais '$ .data()' au lieu de '$ (selector) .data()' et la seconde méthode retourne 'null' si la valeur n'existe pas. – RaYell

Questions connexes