簡體   English   中英

jQuery與MooTools沖突:未捕獲的TypeError:self.className.contains不是函數

[英]jQuery Conflicting with MooTools: Uncaught TypeError: self.className.contains is not a function

我有一個同時使用jQuery和MooTools的應用程序。 過去,我已經能夠解決jQuery.noConflict()的沖突,但是似乎有一個特定的頁面,其中jQuery.noConflict()以一種意外的方式工作:特別是, getElementByClass polyfill被覆蓋由MooTools。

以下操作將失敗,並出現以下錯誤:

var $j = jQuery.noConflict(), var $myElements = $j(".my-element");

返回值:

未捕獲的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

我試圖通過CDN引入腳本來使jQuery“重新初始化”為其默認值,但這也失敗了。

我怎樣才能重置jQuery使其具有以前的方法?

請不要使用mootools 1.2,它早於ES5為String.prototype.containsArray.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是一種將作用域保持在實例范圍內的技巧,對於它而言,指向一個具有className屬性的Element並不常見。 當您console.log(self.className)會發生什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM