Yii и Jquery

Наверно это скорее по по 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.

Используй .insertAfter(). Оно перемещает нужный элемент туда, куда надо, а не копирует хтмл код, как у тебя.

Зарегистрируйся на teamer.rosko.com.ru, создай проект и задание. И посмотри как я это реализовал в системе комментирования задания.

Огромное спасибо, плюсик в карму :)))

С формой разобрался, теперь новая проблема возникла. После добавления коммента аяксом добавляю в нужное мне место только что написанный комментарий. В том числе новую ссылку "Ответить", при нажатии на которую должна по идее появляться форма ответва к новому свеженаписанному и свежедобавленному аяксом комменту. Только вот чтото не хочет эта ссылка работать, все остальные - ок.

Отрывок кода, который за это отвечает:



$post_snippet = '<div class="comment_snippet level_'.$m_m.'" id=comment_'.$cm->id.' style="margin-left: '.(($m_m-1)*20).'px">'.$_POST['CommentForm']['body'];


$post_snippet .= '<br>';


$post_snippet .= '<small><a href=# id=ccf name='.$cm->id.'>ответить</a></small>';


$post_snippet .= '</div>';


	


echo '<script type="text/javascript">';


echo '$("div#comment_'.$_POST['CommentForm']['parentID'].'").after("'.$post_snippet.'");';


echo '</script>';


(echo потому, что скрипт возвращаю в качестве ответа на ajax-запрос). А http://teamer.rosko.com.ru/ - чтото валится после того, как логинюсь:(((

Спасибо за плюсик.

http://teamer.rosko.com.ru/ починил, там оказалась ошибка. Отдельное спасибо за помощь в ее определении :)

Свежесгенерированная ссылка у тебя не работает по причине того, что jquery еще о ней не знает. Тебе надо каким-то образом заново переопределить $('a#ccf').click(function () { … })

Я тоже об этом подумал. Если еще раз отправлять в теле ответа аякску ф-ию $('a#ccf').click(function () { … }), то все работает. Но какойто это по мне не совсем правильный подход.

Иначе никак, имхо.

Ну почему же никак.

http://docs.jquery.com/Events/live#typefn