Я використовую jQuery v.1.7.1, де метод .live () очевидно застарілий.
Проблема, яка у мене виникає, полягає в тому, що при динамічному завантаженні HTML в елемент за допомогою:
$('#parent').load("http://...");
Якщо я спробую після цього додати подію натискання, вона не реєструє подію, використовуючи один із цих способів:
$('#parent').click(function() ...);
або
// according to documentation this should be used instead of .live()
$('#child').on('click', function() ...);
Який правильний спосіб досягти цієї функціональності? Мені здається, що для мене працює .live (), але я не повинен використовувати цей метод. Зауважте, що #child - динамічно завантажений елемент.
Дякую.
.live()
він говорить про те, як переписати існуючі способи .live()
використання .delegate()
або .on()
(залежно від того, ви користуєтеся версією 1.7 або більше). Зауважте, що якщо ви додаєте обробник з .click()
"згодом", як ви згадували, тобто після динамічного завантаження елементів, він повинен працювати - єдину проблему намагаються призначити .click()
перед динамічним завантаженням елементів.