我正在使用jQuery扩展Yii中的CGridView,以记住切换页面时选中的行。页面是使用AJAX加载的,因此我认为当请求完成并且新页面已呈现时,我的代码应该介入并发挥作用。但是,我似乎找不到任何文档表明在新页面完成呈现时会触发事件或其他操作。
然而,我可以使用DOM监听器,但我认为最好使用一个用于整个页面的事件。
然而,我可以使用DOM监听器,但我认为最好使用一个用于整个页面的事件。
如果您的页面是使用ajax加载的,您可以使用afterAjaxUpdate
:
$this->widget('zii.widgets.grid.CGridView', array(
// ... options ...
'ajaxUpdate'=>true,
'afterAjaxUpdate'=>'aFunctionThatWillBeCalled', //
// ... more options ...
));
您可以这样添加js函数:
Yii::app()->clientScript->registerScript('some-script-id','function aFunctionThatWillBeCalled(id, data){
console.log("id is "+id);
// your jquery code to remember checked rows
}');
yii
世界的新手,你能详细解释一下这段代码吗?Yii::app()->clientScript->registerScript('some-script-id','function aFunctionThatWillBeCalled(id, data){ console.log("id is "+id); // your jquery code to remember checked rows }');
- Ulug'bekaFunctionThatWillBeCalled
是什么,它必须等于小部件的afterAjaxUpdate
函数,只是我一无所知。 - Ulug'bekregisterScript
的文档。registerScript
用于方便地向视图中添加JavaScript代码,在文档中还可以看到其他参数,比如$position
,它可以将JavaScript代码添加到最终HTML中的适当位置。在上面的示例中,定义了一个名为aFunctionThatWillBeCalled
的函数,并通过registerScript
将其添加到视图中。 - bool.devafterAjaxUpdate
中,我们可以只传递函数名称,而不是传递整个函数定义。 - bool.dev