Ajax в Ajax`е

Есть проблема:

есть содержимое, которое было загружено через аякс. Вот в этом содержимом есть используемые CSS и JS, которые почемуто не работают!!! подскажите! помогите!

А можно увидеть код?

Например, вызывается чтото типа:

                        echo CHtml::ajaxLink(


                            $item->an_title,


                            array('news/list'),


                            array(


                                'update' => '#output',


                            ),


                        );


                        ?>

В результате будет асинхронно отрендерена через renderPartial страница, в которой это :

                        echo CHtml::ajaxLink(


                            $item->an_title,


                            array('news/show', 'id'=>$item->an_id, 'from'=>base64_encode(Yii::app()->request->getRequestUri())),


                            array(


                                'update' => '#output',


                            ),


                        );


                        ?>

работать не будет. хз почему

т.е. получается, что загруженнный асинхронно яваскрипт не пашет

А что фаербаг говорит в консоле при клике на линг который в ajax блоке?

посмотрите http://docs.jquery.com/Events/live

и плагин livequery.

похоже, относится именно к вашей проблеме – элементы, добавленные аяксом, в ДОМ при этом не добавляются, поэтому скрипты к этим элементам и не привязываются.

Посмотрите в полученном аякс ответе сгенерирован ли вообще яваСкрипт(в фаербаге на вкладке консоль) ?

Если нет то когда делаете рендерПартиал смотрите в сторону параметру processOutput

Посмотрите в полученном аякс ответе сгенерирован ли вообще яваСкрипт(в фаербаге на вкладке консоль) ?

Если нет то когда делаете рендерПартиал смотрите в сторону параметру processOutput

киньте сюда плиз тот JS код, что генерит Yii при вызове ваших ajaxLink()

Как правило он находится в самом конце страницы.

Возможно у вас просто не подвешиваются эвенты на полученный контент.

Я сравнил по сожержимому ту же страницу, но в первом случае сгенеренную аяксом, а во втором случае - сгенеренную обычным запросом. Плагин сравнения файлов по содержимому показал что они полностью идентичны… =(

Эвенты вешаются, проверял…

Вот генерируемый в синхронном и асинхронном случаях яваскрипт:

<script type="text/javascript">

/<![CDATA[/

jQuery(document).ready(function() {

jQuery(’#yt0’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/525/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt1’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/527/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt2’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/522/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt3’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/524/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt4’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/526/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt5’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/533/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt6’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/536/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt7’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/532/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt8’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/540/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt9’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/553/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt10’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/557/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt11’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/558/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt12’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/561/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt13’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/545/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt14’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/543/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt15’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/542/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt16’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news/show/id/551/from/L3RhdHNwb3J0Lw%3D%3D’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

jQuery(’#yt17’).click(function(){jQuery.ajax({‘beforeSend’:function(){$("#loading").html(’<img src=\"/tatsport/images/loading_s.gif\" /> Идёт загрузка…’)},‘url’:’/tatsport/news’,‘cache’:false,‘success’:function(html){jQuery("#output").html(html)}});return false;});

});

/]]>/

</script>

Я начинаю подозревать, что дело связано с jQuery(document).ready … =(

Весь код не обязательно было засовывать )

Визуально вроде нет проблем, и ваши предположения по поводу *.ready не верны.

Советую протебажить, возьмите firebug и в бой.

Я правда пошел своим путем и не стал использовать встроенные аякс кнопки.

вот похожая тема, только на английском:

http://www.yiiframework.com/forum/index.php?/topic/5769-ajax-step-by-step