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, перейдите на страницу входа и получите следующее:
![Error Microsoft JScript]()
Нашел этот ответ StackOverflow: qaru.site/info/143606/... и внес 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, чтобы снова работать в режиме отладки.
Если кто-то испытал это раньше и имеет какое-либо представление, я был бы очень благодарен. Заранее спасибо.
Ответы
Ответ 1
Пакет Microsoft jQuery Unobtrusive Ajax исправлен в версии 2.0.30116.0, чтобы устранить эту проблему. Вызов .live()
был изменен для использования .on()
.
Попробуйте обновить пакет NuGet, чтобы получить последнюю версию.
Однако предложение использовать пакет jQuery Migrate является хорошим для поиска проблем в других плагинах или вашего собственного кода, которые несовместимы с изменениями в jQuery 1.9 +.
Ответ 2
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.