ASP.NET MVC 4: невозможно изменить JQuery Ненавязчивый Ajax
С помощью ASP.NET MVC 4
а также NuGet
управлять пакетами.
После обновления до jQuery 1.9.1
с помощью NuGet
Я начал получать JavaScript
ошибки, касающиеся удаления live()
функция в jQuery 1.9.x
,
Я нажал F5, чтобы запустить в режиме отладки из VS.NET, перейти на страницу входа и получить следующее:
Нашли этот ответ Stackru: /questions/7515023/nenavyazchivyij-ajax-perestal-rabotat-posle-obnovleniya-jquery-do-190/7515037#7515037 и внесли 4 изменения в ~\Scripts\jquery.unobtrusive-ajax.js
,
мой ~\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) {
...
});
Я тоже физически удалил jquery.unobtrusive-ajax.min.js
и использовал WebGrease 1.3.0
чтобы восстановить его из моего обновленного ~\Scripts\jquery.unobtrusive-ajax.js
,
Однако по каким-то причинам мои изменения не используют .live()
функции не прилипают. Я попытался остановить веб-сайт IIS Express 8.0 (localhost:63798), на котором VS.NET запускает приложение MVC.
Также попытался выполнить Build->Clean Solution, Build->Rebuild Solution, прежде чем нажать F5 для повторного запуска в режиме отладки.
Если бы кто-то испытал это раньше и имел какое-то понимание, я был бы очень благодарен. Заранее спасибо.
2 ответа
Пакет https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/ был исправлен в версии 2.0.30116.0 для решения этой проблемы. Призывы к .live()
были изменены для использования .on()
,
Попробуйте обновить пакет NuGet, чтобы получить последнюю версию.
Тем не менее, предложение использовать пакет jQuery Migrate является хорошим, чтобы найти проблемы в других плагинах или вашем собственном коде, которые не совместимы с изменениями в jQuery 1.9+.
live()
был удален в jQuery 1.9 вместе с некоторыми другими функциями.
Если вам нужна поддержка удаленных функций, вам также необходимо добавить файл миграции jQuery, который содержит удаленные функции.
Добавление ссылки, аналогичной приведенной ниже, должно включать все необходимые функции:
<script src="http://code.jquery.com/jquery-migrate-1.1.1.js"></script>
Файл перенастройки в режиме отладки также добавит в вашу консоль предупреждения, уведомляющие вас об использовании удаленных функций. Это поможет вам постепенно заменить их по мере продвижения, что в итоге приведет к тому, что вы сможете удалить ссылку на файл переноса, используя только jQuery 1.9 и более поздние версии.
См. Следующие сообщения в блоге jQuery для получения подробной информации о миграции на jQuery 1.9.