ASP.NET MVC 4: ne peut pas modifier jQuery Discrète Ajax
À l'aide de ASP.NET MVC 4
et NuGet
pour gérer les paquets.
Après la mise à niveau de jQuery 1.9.1
via NuGet
, j'ai commencé à recevoir des JavaScript
des erreurs concernant la suppression de la live()
fonction dans jQuery 1.9.x
.
J'appuyez sur la touche F5 pour exécuter en mode de débogage à partir de VS.NET, allez à la page de connexion, et d'obtenir les éléments suivants:
Trouvé ce StackOverflow réponse: https://stackoverflow.com/a/14512797 et faite le 4 changements de ~\Scripts\jquery.unobtrusive-ajax.js
.
Mon ~\Scripts\jquery.unobtrusive-ajax.js
:
$(document).on("click", "a[data-ajax=true]", function (evt) {
...
});
$(document).on("click", "form[data-ajax=true] input[type=image]", function (evt) {
...
});
$(document).on("click", "form[data-ajax=true] :submit", function (evt) {
...
});
$(document).on("submit", "form[data-ajax=true]", function (evt) {
...
});
J'ai aussi physiquement supprimé jquery.unobtrusive-ajax.min.js
et utilisé WebGrease 1.3.0
à se régénérer à partir de ma mise à jour ~\Scripts\jquery.unobtrusive-ajax.js
.
Cependant, pour quelque raison, mes changements de ne pas utiliser le .live()
la fonction ne sont pas coller. J'ai essayé d'arrêter le IIS Express 8.0 Site Web (localhost:63798) en vertu de laquelle VS.NET exécute l'Application MVC.
Aussi essayé de faire un Build->Nettoyer la Solution, Build->Reconstruire la Solution avant d'appuyer sur F5 pour exécuter en mode de débogage de nouveau.
Si quelqu'un a connu ça avant, et a des connaissances, je serais très reconnaissant. Je vous remercie à l'avance.
Sur ce point de Vue,
/Scripts/jquery-1.9.1.js
, /Scripts/jquery.unobtrusive-ajax.js
, /Scripts/jquery.validate.js
, /Scripts/jquery.validate.unobtrusive.js
Avez-vous essayé de vider votre cache ou de frapper à partir d'un autre navigateur? Ou, à l'aide de chrome, les développeurs d'outils et cliquez sur l' /Scripts/jquery.unobstrusive-ajax.js (non compacte) pour afficher le fichier source pour vérifier que vos modifications sont poussés. Je pense que quelque chose est maintenant sur l'ancienne version.
Avoir l'aide de la dernière Discrète Ajax paquet? La dernière version (2.0.30116.0) dans mon MVC4 projet utilise .sur(), pas .live()
Merci pour votre suggestion et de la perspicacité, je l'apprécie. Je pense que d'une certaine manière depuis que j'ai été à l'aide de NuGet, puis mises à jour discrète ajax, NuGet a été accroché à une pure copie. J'ai suivi jmoerdyk de réponse et cela a résolu mon problème.
OriginalL'auteur Philip Tenn | 2013-03-12
Vous devez vous connecter pour publier un commentaire.
La Microsoft jQuery Discrète Ajax paquet a été corrigé dans la version 2.0.30116.0 pour résoudre ce problème. Les appels à
.live()
ont été modifiés pour utiliser.on()
.Essayez de mettre à niveau votre package NuGet pour obtenir la dernière version.
Cependant, la suggestion d'utiliser le jQuery Migrate package est bon de trouver des problèmes dans d'autres plugins ou votre propre code qui ne sont pas compatibles avec les changements dans jQuery 1.9+.
Qui a résolu mon problème. Je vous remercie beaucoup. Je suis allé dans
NuGet
et de mise à niveau de Microsoft jQuery Discrète Ajax. C'est drôle, je ne pouvais pas le trouver avant, parce que je ne sais pas le nom exact de recherche, merci pour le partage de cette Galerie NuGet lien, je ne connaissais pas ce site (qui m'a rappelé de Maven Central en Java) existait.OriginalL'auteur jmoerdyk
live()
a été supprimé en jQuery 1.9 avec quelques autres fonctionnalités.Si vous avez besoin d'un support pour les fonctionnalités supprimées, vous devez également ajouter le jQuery migrate fichier qui contient les fonctionnalités supprimées.
L'ajout d'une référence similaire à ci-dessous devrait inclure toutes les fonctionnalités dont vous avez besoin:
Migrer le fichier en mode debug sera également ajouter des mises en garde pour votre console de vous informer lorsque vous utilisez les fonctionnalités supprimées. Cela vous aidera peu à peu à les remplacer au fur et à mesure entraînant éventuellement vous être en mesure de supprimer l'migrer le fichier de référence, en utilisant uniquement jQuery 1.9 et au-delà.
Voir la suite de jQuery messages de blog pour tous les détails sur la migration vers jQuery 1.9.
jquery.unobtrusive-ajax.js
, veuillez voir mon petit bout de code. Je vais essayer d'utiliser le jquery-migrer, car pour une raison que je ne peux pas obtenir mes modifications jquery.unobtrusive-ajax.js au bâton.J'espère que la référence à migrer le fichier de tri. L'ensemble de l'idée de migrer fichier est de prendre en charge la migration et bien sûr aider les développeur qui s'appuient sur des tiers plugins/bibliothèques qu'ils ne peuvent pas changer directement eux-mêmes. Je ne sais pas si Nuget est une référence pour télécharger le migrer fichier, mais si vous avez des problèmes avec Nuget vous pouvez toujours essayer de supprimer le Nuget de référence pour les fichiers jQuery et télécharger les fichiers manuellement et de les inclure dans votre projet, y compris la migrer fichier.
Merci beaucoup pour votre réponse. Cela m'a vraiment aidé. J'ai fini par accepter jmoerdyk réponse, mais vos informations et un aperçu a été très utile.
sont absolument droit. Mise à jour le package nuget est la bonne façon. Je n'étais pas au courant de la publication en février et sera certainement garder note de moi-même 🙂
OriginalL'auteur Nope