1

cmsに実装するテーマが与えられました。

テーマは jQuery 1.6 を使用しており、javascript エラーはありません。

CMS (concrete5) は jQuery 1.7.1 を使用しており、javascript エラーはありません。

テーマを CMS にマージするときに、インクルードを jQuery にドロップすると (jQuery を 2 回インクルードするのを避けるため)、次のエラーが発生します。

Uncaught TypeError: Property '$' of object [object DOMWindow] is not a function (ccm.app.js line 1 --> ccm.app.js is part of the CMS javascript).
Uncaught TypeError: Property '$' of object [object DOMWindow] is not a function (page controls menu.js).

スクリプト src 参照は次の順序です。

- jQuery
- ccm.app.js (CMS)
- page controls menu.js (CMS)
- custom.js (my theme)

これは調べてトラブルシューティングするコードが多くないことを認識していますが、この種のエラーを引き起こしている可能性のあるjQuery 1.6 と jQuery 1.7 の違いを知っている人はいますか?

4

2 に答える 2

2

上記の答えは何が間違っていたのかの根本に到達しますが、他の誰かが同じ問題を抱えている場合に備えて、この部分について言及するだけだと思いました.

私の場合、私の custom.js ファイルには、jQuery の各小さなビットの周りに jQuery noConflict ラッパーがあります。

jQuery.noConflict()(function($){
   $(document).ready(function() {
     // some jQuery javascript here     

   });
});

それを元に戻す:

 $(document).ready(function() {
     // some jQuery javascript here     

   });

抱えていた悩みから解放されました。

于 2012-05-09T14:43:21.170 に答える
2

使用している jQuery のバージョンでは、ショートカットが割り当てられていません$。スクリプトに関して参照しているものを、ショートカットを割り当てているものに変更するか、jQuery をインポートした直後に変更できます。

<script type="text/javascript">
$ = jQuery;
</script>
于 2012-05-09T14:21:15.920 に答える