Я знаю, что .live()
теперь устарела, но я не могу изменить ее и сохранить функциональность.
У меня небольшой вопрос о функции .on()
в jQuery. Сейчас я использую .live()
здесь
Вот так:
$('table tr th').live("click", function() {
});
Но, когда я пытаюсь заменить .live()
на .on()
, она больше не работает так, как должна.
Я пробовал ставить
$('table tr th').on("click", function() {
});
а также
$('table tr').live("click", "th", function() {
});
и
$('table tr').delegate("th", "click", function() {
});
но безрезультатно.
Почему так происходит и какие шаги я могу предпринять, чтобы заставить его работать правильно?
Попробуйте:
$('table tr th').live("click", function() {
должно быть
$(document).on("click", "table tr th", function() {
Именно так вы бы точно подражали вызову .live
. Конечно, вы можете ограничить ваш селектор из документа чем-то более значимым, основываясь на вашей структуре DOM.
Редактировать:
Просто для пояснения, в вашем примере вы должны использовать $(document).on(...
, потому что таблица не имеет родителей и заменяется в течение жизни вашей страницы.
Я почему-то предполагаю, что вы добавляете tr
элементов в свою таблицу, а не th
.
$('table').on("click", "tr th", function(){});