CMS使用jquery 1.7,主题使用jQuery 1.6 ==冲突

时间:2012-05-09 14:02:05

标签: javascript jquery

我被赋予了一个主题来实现cms。

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

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

当我将主题合并到CMS中时,我将include删除到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之间的区别可能导致这种错误?

2 个答案:

答案 0 :(得分:2)

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

<script type="text/javascript">
$ = jQuery;
</script>

答案 1 :(得分:2)

上面的答案找到了错误的根源,但我想如果其他任何人遇到同样的问题,我会提到这一部分。

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

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

   });
});

将其更改回:

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

   });

摆脱了我遇到的问题。