更新CListView维护事件处理程序

时间:2011-08-03 17:59:04

标签: php ajax listview yii

我正在使用Yii框架,并广泛使用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 个答案:

答案 0 :(得分:1)

您需要使用jQuery的“实时”功能,例如

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