Криво работает .on()

SocMaster

Профессор
Регистрация
26 Июл 2011
Сообщения
211
Реакции
49
Вообщем, есть посты на странице. В каждом посте есть кнопка ответа(цитирование)
структура ссылки на ответ
Код:
<div class="message-item-info">
<div class="message-date">06 Марта 2014 в 09:10</div>
<a href="#message-form" id="204465" class="answer-link">Ответить</a>
</div>
Обработчик на js
Код:
    jQuery('body').on("click",'.answer-link',function () {
    alert(this.id);
    message = jQuery("#post-text-" + this.id).html();
    message = message.replace(/<ignore.[\s\S]+?js_op>/igm, '');
    message = jQuery(message).text();
    jQuery("textarea#fastpostmessage").val("[quote]" + message.replace(/[\s{2,}]+/g, ' ') + "[/quote]");
    });
Не срабатывает событие для элементов которые загружены на странице. если загрузить новые посты через ajax то у них работает кнопка ответить 0.0
почему не работает в тех постах которые сразу загружены?? читал докки читал, не получается понять почему

UP
Пока нашел решение такое
Код:
    jQuery('a[href="#message-form"]').on("click",quote);
    jQuery('body').on("click",'.answer-link',quote);
работает для новых и старых постов
 
Последнее редактирование:
Это конечно как с бензином, но может не хватает просто: $(document).ready({}) ?
 
почему не что-то типа?
Код:
$('.answer-link').click(function() {
    ацций код :crazy:
});
 
Этот код не работает для динамически подгруженных элементов. Пагинацию написал с использованием ajax
так после подгрузки динамического контента необходимо вызвать эту функцию, что прицепить хендлера
 
так после подгрузки динамического контента необходимо вызвать эту функцию, что прицепить хендлера
мм...как это?) я заметил что click не работает, сразу полез в доки где написано что для динамического контента не надо использовать click
 
мм...как это?) я заметил что click не работает, сразу полез в доки где написано что для динамического контента не надо использовать click
нужно найти процедуру где вставляется контент и после него убрать все клик хендлера и установить их снова. вообще, проще написать маленьку процедурку и вызывать её два раза
1. при (после) загрузке документа
2. при вставке нового контента
 
нужно найти процедуру где вставляется контент и после него убрать все клик хендлера и установить их снова. вообще, проще написать маленьку процедурку и вызывать её два раза
1. при (после) загрузке документа
2. при вставке нового контента
xd
Наверное все таки оставлю пока чт
Код:
  jQuery('a[href="#message-form"]').on("click",quote);
    jQuery('body').on("click",'.answer-link',quote);
 
Назад
Сверху