Обновление CListView с поддержкой обработчиков событий - PullRequest
0 голосов
/ 03 августа 2011

Я использую Yii Framework и широко использую CListViews. Однако я постоянно сталкиваюсь с проблемой, которую не могу решить:

Это мой CListView

            $this->widget('zii.widgets.CListView', array(
            'viewData'=>array('sent'=>$sent),
            'dataProvider'=>$dp,
            'pager' => array(
                            'prevPageLabel'=>'< Prev.',
                            'nextPageLabel'=>'Next>',
                            'header'=>'Pagina: ',
                            'pageSize'=>5,),
            'template'=>"{items}\n{pager}", 
            'itemView'=>'_messageView',
            'emptyText'=>'Empty inbox',
            'enablePagination'=>true,
            'afterAjaxUpdate' => 'js:function(id) {alert("after");}',
            'id'=>'listMessages',
        ));

И у меня есть метод JS, который обновляет список следующим образом:

function sent_view(){
$.fn.yiiListView.update('listMessages',
        {data:'type=sent', url:'view?sort=timestamp&ajax=listMessages'});
}

После вызова этой функции все события, связанные с каждым элементом CListView, больше не отображаются. Я попытался добавить следующий фрагмент кода, чтобы снова присоединить обработчики, однако это не работает. Это даже не отображает предупреждение, если я добавляю его сразу после строки кода $ .fn.yiiListView.update.

$(".individualMessage").mouseover(function(){
    $(this).css('cursor','pointer');
    $(this).css("background",'url(/../images/messages/background.png)');
});

Кто-нибудь сталкивался с подобной проблемой? спасибо!

1 Ответ

1 голос
/ 09 августа 2011

Вам необходимо использовать "живую" функцию jQuery, например:

$(".individualMessage").live("mouseover",function(){
    $(this).css('cursor','pointer');
    $(this).css("background",'url(/../images/messages/background.png)');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...