1

我在 Yii 中手动制作选项卡式内容,因此内容将从 AJAX 加载数据。我正在使用ajaxLink(),它工作正常。选定的选项卡 ID 存储在会话中,因此当我重新加载页面时,会再次选择相同的选项卡。问题是,内容只会在我按下选项卡(链接)时加载,而不是自动加载。所以我想我可以使用jQuery.trigger()函数来模拟页面加载的点击。但它不起作用,可能是因为 Yii 生成脚本并将其放在页面末尾,所以该.trigger("click")函数没有做任何事情 - 它无法访问 AJAX 代码,因为它还没有生成。

有没有办法解决这个问题?我知道这是一个糟糕的解决方案,但我必须这样做。

4

1 回答 1

1

在 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参数。多亏了他,这个功能是在链接添加更新事件后执行的。

于 2014-03-14T15:19:05.200 回答