我正在使用的网站上有两个版本的jQuery,某些东西可能需要旧版本,但我的一个脚本因为使用旧版本而破坏了,我收到此错误:
l.Deferred is not a function
我尝试使用更新版本的jQuery,在我的main.js脚本之前添加jQuery脚本,并将我的主脚本包装在指定版本的jQuery中。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>jq11 = jQuery.noConflict(true);</script>
<script src="/sites/all/themes/wma2/js/main.js"></script>
然后在main.js:
(function($){
window.matchMedia || (window.matchMedia = function() {
"use strict";
var t = window.styleMedia || window.media;
function r(t, e, i) {
if (!(this instanceof r)) return new r(t, e);
"string" == typeof t && (t = document.querySelectorAll(t)),
this.elements = n(t), this.options = s({}, this.options),
"function" == typeof e ? i = e : s(this.options, e), i &&
this.on("always", i), this.getImages(), l && (this.jqDeferred =
new l.Deferred);
var o = this;
setTimeout(function() {
o.check()
})
}
......
})(jq11);
您可以在我的网站here
上查看该问题