我在Yii中手动制作选项卡内容,因此内容将从AJAX加载数据。我用的是ajaxLink()
,它工作得很好。所选的选项卡ID存储在会话中,因此当我重新加载页面时,将再次选择相同的选项卡。问题是,内容将加载只有当我按下一个选项卡(链接),而不是自动加载。所以我想我可以使用jQuery.trigger()
函数来模拟点击页面加载。但是它不起作用,可能是因为Yii生成脚本并将其放在页面的末尾,所以.trigger("click")
函数不做任何事情-它不能访问AJAX代码,因为它还没有生成。
有办法解决这个问题吗?我知道这是一个糟糕的解决方案,但我必须这样做。
你应该在DOM准备好后添加触发事件的脚本:
echo CHtml::ajaxLink(
'linkText',
'url',
array('update'=>'#conteinerId'),
array('class'=>'activeTabLink')
);
Yii::app()->clientScript->registerScript(
'ajaxTabLinkScript',
'$(function(){ $(".activeTab").click()})',
CClientScript::POS_LOAD
);
关注CClientScript::POS_LOAD
参数。多亏了他,这个函数是在链接添加了更新事件之后才执行的。