jQuery:我可以让ajaxLink()生成的jQuery代码先于其他脚本加载吗?



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

相关内容

  • 没有找到相关文章

最新更新