3

yepnope.jsを含めてから、次のようにしました。

<script type="text/javascript"> 
/*<![CDATA[*/
    yepnope([{
      load: 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js',
      complete: function () {
        if (!window.jQuery) {
          yepnope('local/jquery.min.js');
        } ...

ただし、jqueryがcdnから読み込まれている間、ページの最後にある次のスクリプトはエラーを示しています。

/*<![CDATA[*/
jQuery(function($) {
jQuery('#Project_projectDateStart').datepicker({'dateFormat...

エラーはjQueryが定義されていないことです

最後にスクリプトをロードする以外に選択肢はありません(この場合はYii datepickerでロードされます)。

どんな助けでも大歓迎です。

4

1 に答える 1

3

yepnopeを使用する場合は、コールバック関数を使用する必要があります。jQueryは非同期で読み込まれるため、直接呼び出すことはできません。yepnopejs.comのドキュメントを解析するのは少し難しいですが、それがその要点です。

基本的に、YiiのデフォルトのAJAXや他のJSヘルパーは、私が知る限り、yenopeで動作することはありません。または、それらが機能する場合は、YiiがGoogleからロードされたyepnope非同期に加えてjQueryの別のコピーを含んでいたためです。yepnopeのような非同期ローダーで正しく動作させるには、Yiiがスクリプトをロードする方法を変更するために多くの作業を行う必要があります。

でも頑張ってください!非同期ローダーはページのパフォーマンスに優れています。私は常にFacebookを使用しています。

于 2011-04-10T14:29:30.057 に答える