Нет функции (live is not a function) на jQuery 3.0, как исправить?

Я обновил библиотеку jQuery (была очень древняя) и поставил 3.0, стали сыпаться ошибки.

TypeError: $(...).live is not a function

В какую сторону копать?

4 Симпатий

jQuery .live() был удален в версии 1.9 и выше. Вы написали, что у вас версия 3.0.

Хороший “прыжок” (странно, что не на последнию), но он будет требовать некоторой доработки.

Было:

$('#menu a').live('click', function)

после, вы перемещаете дочерний элемент (a) в .on() селектор:

$('#menu').on('click', 'a', function)

Еще хороший пример на stackoverflow. Не стесняйтесь использовать поик Google:

$('.myButton').live('click', function)

после, вы перемещаете элемент (.myButton) в .on() селектор и находите ближайший родительский элемент (желательно с идентификатором):

$('#parentElement').on('click', '.myButton', function)

Если вы не знаете, что поставить в качестве родителя, body всегда работает:

$('body').on('click', '.myButton', function)

Но я вам советую поискать что-то поближе. Те конструкции, что даны выше на Stack, при таком “прыжке” не будут работать. Они уберут ошибки, но не сделают скрипт рабочим.

5 Симпатий