Подтвердить что ты не робот

Объект не имеет метода 'live' - jQuery

<script>
$(document).ready(function(){
    $('.delete').live('click', function(e){
        alert('delete');
        e.preventDefault();
    });
});
</script>
<a href='#' id='_1' class='delete'>Delete</a>

Дает мне ошибку:

Uncaught TypeError: Object [object Object] не имеет метода 'live'

Я просто не вижу проблемы?

4b9b3361

Ответ 1

.live() является устаревшей функцией (от 1.7+) и полностью удаляется из jQuery 1.9 +.

Вместо этого вы можете использовать методы .on() или .bind():

http://api.jquery.com/on/
http://api.jquery.com/bind/

Ответ 2

  • Если вызов .live() находится внутри вашего собственного кода, просто измените его на .on(), используя правила, показанные на http://api.jquery.com/live.

  • Если код находится в стороннем плагине jQuery, используйте плагин jQuery Migrate для восстановления .live(), пока автор не обновит свой плагин: https://github.com/jquery/jquery-migrate#readme.

  • На производственных сайтах не используйте URL-адреса, которые ссылаются на "последнюю" версию jQuery, например http://code.jquery.com/jquery-latest.js или http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js, поскольку они будут автоматически обновляться, когда будет выпущена новая версия jQuery, и ваш сайт внезапно сломается, если он несовместим.

Ответ 3

Если вы используете jQuery 1.7+, используйте on(...) вместо live(...).
Проверьте это: http://api.jquery.com/on/

Ответ 4

Существует один сценарий, когда ни .on(), ни .bind() не будут работать: когда элемент не существует при добавлении обработчика события. И это было так, как живое().

Ответ 5

Смотрите http://api.jquery.com/live/

старый

$("a.offsite").live("click", function(){ alert("Goodbye!"); });                // jQuery 1.3+
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); });  // jQuery 1.4.3+

новый

$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); });        // jQuery 1.7+

Ответ 6

использовать .on

<script>
$(document).ready(function(){
    $('.delete').on('click', function(e){
        alert('delete');
        e.preventDefault();
    });
});
</script>

Ответ 7

Существует плагин миграции jQuery (используйте это)....... он решит проблему.

ASP.NET MVC ajax-unobtrusive + jQuery 1.9 http://bugs.jquery.com/ticket/13220