Проблема роботи з jquery 1.7
Вчора один із моїх сайтів перестав працювати і я почав шукати проблему. Почав із конслої та побачив, що лайка йде на код приблизно наступного виду:
$(selector).live(events, data, handler);
Причому проблема була саме в тому, що відбулися зміни у старій версії jquery, а саме у версії 1.7. З офіційних джерел я дізнався що .live() був замінений на .on() і що ця дія є застарілою. Хоча до цього сайт відмінно працював і як стара версія jquery не повинна б змінюватися. Трохи пізніше наступного дня на фо. сайті я побачив рядок version deprecated: 1.7, removed: 1.9.
Проблема була вирішена заміною однієї версії бібліотеки jquery 1.7 на іншу jquery 1.9 і в новій метод .on() вже не працював, але добре працював метод .live() про яке писали, що він застарів. Слідкуватимемо за цими методами, можливо, ще щось зміниться.
Стаття була мною написана для тих розробників, хто перебувати в моїй спільноті як попередження “Перевірте роботу своїх сайтів, особливо там, де використовувався ajax“.
У зв'язку з цією проблемою відкриваю новий розділ, куди можна публікувати свої проблеми та їх вирішення у розробці сайтів розділ так і називаю “Проблеми та рішення”.
Прохання всіх хто прочитав і зіткнувся зі схожою проблемою, якось прокоментувати це.
ось що сказано у документації
http://api.jquery.com/live/
Станом на jQuery 1.7, .live() метод застарів. Використовуйте .on() щоб приєднати обробники подій. Користувачам старіших версій jQuery слід використовувати .delegate() надає перевагу .live().
тобто. у версії 1.9 потрібно використовувати .on()
У ранніх версіях рекомендується використовувати delegate()
замість жити().
Щоб спростити собі життя, просто використовуйте on() для версії 1.7 і дітей