我有一个同时使用jQuery和MooTools的应用程序。在过去,我已经能够解决与jQuery.noConflict()
的冲突,但似乎有一个特定的页面jQuery.noConflict()
以一种意想不到的方式工作:特别是{{1 MooTools正在重写polyfill。
以下内容将失败,并显示以下错误:
getElementByClass
返回:
未捕获的TypeError:self.className.contains不是 functionSelectors.Filters.byClass @ mootools-1.2.js:2766Selectors.Utils.filter @ mootools-1.2.js:2635Selectors.Utils.search @ mootools-1.2.js:2700Native.implement.getElements @ mootools-1.2.js:2532Native.implement.getElementsByClassName @ mootools-1.2.js:9638c.querySelectorAll.k @ jquery.1.6.4.min.js:3f.fn.extend.find @ jquery.1.6.4.min.js:3e.fn.e.init @jquery.1.6.4.min.js:2e @ jquery.1.6.4.min.js:2(匿名函数)@ VM16934:6
我试图让jQuery"重新初始化"通过CDN引入脚本来达到默认值,但也失败了。
如何重置jQuery以使其以前的方法?
答案 0 :(得分:0)
请不要使用mootools 1.2,它早于ES5对String.prototype.contains
和Array.prototype.contains
的原生方法,并且大约有5-6岁。
无论哪种方式,MooTools都不会覆盖Element.prototype.getElementByClassName
,无论如何都不会在现代浏览器选择器中使用 - 所以除非你支持IE6,否则这样做无济于事,嘶嘶声和光滑使用querySelectorAll
此外。 https://bugzilla.mozilla.org/show_bug.cgi?id=789036
MooTools的' String.prototype.contains
打破浏览器并强制推出一系列修复程序,包括1.2.6和1.3
最后。
self.className.contains
没有帮助 - 这是你自己的代码还是MooTools中的代码 - 通常,self是一个将范围保持在实例的黑客,不常见的是指向Element
,将拥有className
属性。你console.log(self.className)
时会发生什么?