Добрый вечер, господа! Возникла проблемка с CJuiDialog - гугл молчит, полдня уже убила(
Есть следующий виджет:
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'some_id',
'options'=>array(
'title'=>'Some Title',
'width'=>500,
'height'=>300,
'autoOpen'=>false,
'modal'=>true,
),
));
//тут кое-какое содержимое
$this->endWidget('zii.widgets.jui.CJuiDialog');
echo "
<a class=\"addStreamsDialog\" onclick=\"$('#some_id').dialog('open'); return false;\" href=\"#\">Click Me</a>
";
/*
Работает, выводится.
Многое на страничке написано на аяксе, и рядом с виджетом находится несколько ссылок такого вида:
*/
echo "<li>".CHtml::ajaxLink("some name",
Yii::app()->createUrl('controller/action'),
array(
"type"=>"POST",
"update"=>"#update",
'data'=>array('some' => 'data')
),
array("id"=>"some_id".uniqid())
)."</li>";
//и контейнер, в которые они апдейтятся
<div id="#update"></div>
//Это тоже работает - вот контроллер:
function actionAction(){
$out = "some data with ajaxLinks";
$this->renderPartial("view","out"=>$out,false,true);
}
В чем проблема.
Если НЕ кликать по ajaxLink-ам (и соответственно, ничего не рендерить) - все работает, попап открывается.
Если кликнуть по аякс линку и отрендерить что-то в соседний див с true на обработке JS, все рендерится, но попап перестает работать. В консоли ошибка .dialog is not a function.
Если выставить обработку JS в false, попап продолжает открываться, но само собой, перестают работать отрендеренные линки. Т.е. при рендере где-то теряется код диалога, видимо.
Есть ли способ заставить работать CJuiDialog вне зависимости от того, что там в соседний див рендерится? Или есть более элегантный способ для работы с полностью аяксовой страницей? Я с Yii совсем недавно