我被赋予了一个主题来实现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之间的区别可能导致这种错误?
答案 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
});
摆脱了我遇到的问题。