1

我已经获得了一个主题来实现到 cms 中。

该主题使用 jQuery 1.6 并且没有 javascript 错误。

CMS (concrete5) 使用 jQuery 1.7.1 并且没有 javascript 错误。

当我将主题合并到 CMS 中时,我将包含放到 jQuery 中(因为我要避免包含 jQuery 两次),现在我收到以下错误:

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

您使用的 jQuery 版本没有分配快捷方式$。您可以将您引用的脚本更改为分配快捷方式的内容,或者在导入 jQuery 后立即

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

上面的答案找到了问题的根源,但我想我会提到这部分,以防其他人有同样的问题。

对我来说,在我的 custom.js 文件中,我有 jQuery noConflict 包装器围绕着 jQuery 的每一点:

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

   });
});

将其更改回只是:

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

   });

摆脱了我遇到的问题。

于 2012-05-09T14:43:21.170 回答