Функция jquery 1.9.0 live?

В jquery 1.9.0 нет функции live(), но jquery.unobtrusive.ajax.js уже использует эту функцию.

Должен ли я использовать более старую версию jquery или другой способ?

Ответ 1

Амортизируется с 1,7 и удаляется с 1,9. Вместо этого используйте on().

http://api.jquery.com/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.

Ответ 2

.live() был заменен синтаксисом делегирования событий .on():

$('#parent').on('click', '.child', function() {
  ...
});

#parent должен существовать при вызове вашего селектора, поэтому, если ваш элемент находится на верхнем уровне, используйте document в качестве родителя.

Ответ 3

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() устарел