Наверно это скорее по по jquery вопрос, чем по Yii, но тем не менее. Есть задача сделать древовидные комменты. У каждого коммента есть ссылка ответить, которая вызывает форму ответа к конкретному комменту. Для этого в main.php (который является лэйаутом в Yii по умолчанию) я регистрирую такой скрипт:
$cs=Yii::app()->clientScript;
$script = "
var f = $('div#comment-form').html();
$('a#ccf').click(function(e){
$('div#cf-container').remove();
$('div#comment_' + e.currentTarget.name).after('<div id="cf-container">'+f+'</div>');
$('div#cf-container').fadeIn(500);
});
";
$cs->registerScript('fast-cf', $script, CClientScript::POS_READY);
Смысл его в том, что он копирует основную форму добавления коммента, которая статично расположена внизу, под комментариями. Проблема в том, что форма работает с AJAX'ом. А вот форма, клонированая и выведенная этим скриптом - работает обычно. Подскажите, как заставить ее работать также через AJAX.
С формой разобрался, теперь новая проблема возникла. После добавления коммента аяксом добавляю в нужное мне место только что написанный комментарий. В том числе новую ссылку "Ответить", при нажатии на которую должна по идее появляться форма ответва к новому свеженаписанному и свежедобавленному аяксом комменту. Только вот чтото не хочет эта ссылка работать, все остальные - ок.
Свежесгенерированная ссылка у тебя не работает по причине того, что jquery еще о ней не знает. Тебе надо каким-то образом заново переопределить $('a#ccf').click(function () { … })
Я тоже об этом подумал. Если еще раз отправлять в теле ответа аякску ф-ию $('a#ccf').click(function () { … }), то все работает. Но какойто это по мне не совсем правильный подход.