Есть функция, которая выполняет манипуляции с публикациями в блоге, пририсовывая к ним дополнительные элементы управления. Функция успешно работает с теми публикациями, которые отображаются при загрузке страницы, а вот те, которые позже "дорисовываются" ajax'ом, остаются без этих элементов. Чтобы справится с этой бедой, добавил обработчик DOMSubtreeModified. И вот тут-то и столкнулся с проблемой. Обработчик прекрасно отлавливает появление новых публикации, разбирает их на составляющие, но не может ничего к ним добавить. Никаких ошибок не возникает. Либо у меня "замылился глаз" и я упускаю какую-то мелочь, либо чего-то не знаю об обработке этого типа событий.
function addCtrl(target) {
if(!($(target).hasClass('processed'))) {
var pid = $(target).attr('id');
var usrName = $(target).children('.dd').children('.p').children('.js-user_login').html();
var uid;
var classList = $(target).attr('class').split(' ');
for(var classNdx in classList) {
if(classList[classNdx][0] == 'u')
uid = classList[classNdx];
}
$(target).addClass('processed');
$('<div><a id="ctrl_' + pid + '" href="#">Action1</a> / <a id="ctrl_' + uid + '" href="#">Action2</a></div>')
.insertAfter($(target).children('div.dd').children('div.p').children('.phpb'));
$('a#ctrl_' + pid).click(doAction1);
$('a#ctrl_' + uid).click(doAction2);
}
}
//Вызов отсюда безуспешный
function parse() {
$(this).children('div.post').each(function() {
addCtrl(this);
});
}
//Вызов отсюда успешный
$('div.post').each(function() {
addCtrl(this);
});
$('#js-posts_holder').bind('DOMSubtreeModified', parse);