2

私のレイアウトはlayout/scripts/layout.phtml内に配置されています。layout.phtmlのheadセクション内に以下のコードを配置しました

<?php
print $this->headScript()->appendFile($this->baseUrl().'/js/jquery-1.7.2.min.js')
                         ->appendFile($this->baseUrl().'/js/simpla.jquery.configuration.js');
?>

ここで、ビューから別の JavaScript ファイルを追加したいと考えています。そのために、次のコードを書きました。

 $this->headScript()->appendFile($this->baseUrl().'js/fancybox/jquery.fancybox-1.3.4.pack.js');

これはファイルを追加しましたが、私のjquery-1.7.2.min.jsの前に表示されます。私が欲しいのは、jquery-1.7.2.min.jsの下にjquery.fancybox-1.3.4.pack.jsを追加したいということです。どうすればこれを行うことができますか?

4

1 に答える 1

1

ビュー スクリプトはレイアウトの前にレンダリングされるため、レイアウトで を呼び出すとappendFile()、ビュー スクリプトに追加したスクリプトの後にこれらのスクリプト (jquery-1.7.2 および simpla.jquery) が追加されます。

これを修正するprependFile()には、レイアウトで少なくともメインの jQuery スクリプトで使用してください。

レイアウトは次のようになります。

<?php
print $this->headScript()
           ->appendFile($this->baseUrl().'/js/simpla.jquery.configuration.js')
           ->prependFile($this->baseUrl().'/js/jquery-1.7.2.min.js');

ビュー スクリプトを変更する必要はありません。そのままで問題ありません。

スクリプトの順序について少し説明しているHeadScript Helper Example #23 を参照してください。

彼らが言及していないことを覚えておくべき重要なことは、レイアウトがレンダリングされる前にビュースクリプトがレンダリングされるということです。

于 2012-07-13T02:17:46.970 に答える