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 に答える