В jquery 1.9.0 нет функции live()
, но jquery.unobtrusive.ajax.js уже использует эту функцию.
Должен ли я использовать более старую версию jquery или другой способ?
В jquery 1.9.0 нет функции live()
, но jquery.unobtrusive.ajax.js уже использует эту функцию.
Должен ли я использовать более старую версию jquery или другой способ?
Амортизируется с 1,7 и удаляется с 1,9. Вместо этого используйте on()
.
$("#myButton").on("click", function(){
alert("Clicked");
});
Много полезной информации здесь:
http://www.elijahmanor.com/2012/02/differences-between-jquery-bind-vs-live.html
Что касается ненавязчивого Ajax, вам нужно будет включить версию jQuery до версии v1.9, где live()
все еще существует.
Если вы ссылаетесь на MS CDN,
http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.js http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.min.js
то не кажется, что они непосредственно ссылаются на jQuery. Просто включите версию 1.8 в свой код вместо версии 1.9.
.live()
был заменен синтаксисом делегирования событий .on()
:
$('#parent').on('click', '.child', function() {
...
});
#parent
должен существовать при вызове вашего селектора, поэтому, если ваш элемент находится на верхнем уровне, используйте document
в качестве родителя.
jquery.migate добавляет обратно в устаревшую функцию. Это означает, что функция jquery.unobtrusive.ajax.js функционирует должным образом.
Ссылка на библиотеку jquery.migrate в соответствии с официальным блогом, и есть также nuget pacakge, но, очевидно, вам нужно будет обновить ваши представления шаблона/макета.
http://blog.jquery.com/2013/01/31/jquery-migrate-1-1-0-released/
http://nuget.org/packages/jQuery.Migrate/
Консоль Javascript действительно выделяет проблему...
JQMIGRATE: активен ведение журнала JQMIGRATE: jQuery.fn.live() устарел JQMIGRATE: jQuery.fn.andSelf() заменен на jQuery.fn.addBack() JQMIGRATE: jQuery.clean() устарел
live()
устарел в последних версиях jQuery, но Microsoft обновляет ненавязчивые скрипты в виде пакетов NuGet, которые перезаписывают стандартные версии: