因此,我正在開發一個平臺,每次加載頁面時都會注入jQuery-1.2.6。我開發了我的頁面來使用jQuery-1.4.2,所以當我的頁面加載時,我的頁面上有2個jQuery實例。jQuery noConflict()問題
爲了避免發生衝突,我已經包括在我的JS文件下面一行是超出了我的頁面:
var mc$ = jQuery.noConflict();
jQuery(function($)
一切似乎如果我用了其中$原本是用來MC $奏效。
我在Firebug和IE中遇到了一個錯誤,我不知道該如何解決。
在一個文件時,我的網頁加載開發商是在平臺上注入做:
$(document).ready(function() {
,並在Firebug的錯誤規定:「$不是一個函數」。
此錯誤纔開始顯示出來,一旦我做出的改變:
var mc$ = jQuery.noConflict();
我想,通過創建MC $變量的東西與開發者的$(document)...呼叫爆發。如果是這樣,我不知道如何解決這個問題,如果沒有,我希望有一個解決方案,我可以將該功能提供回開發者的注入文件。
謝謝!
'.noConflict()'是兼容*其他* JavaScript庫/在同一頁面中,不支持任何方式支持jQuery(在1.6+中爲sans'.sub()')的多個實例。 – 2011-06-04 23:55:14
@Nick Craver noConflict()'[文檔](http://api.jquery.com/jQuery.noConflict/)不同意你的看法。它特別提到了通過'true'作爲參數來解除衝突的'jQuery'符號。 – lawnsea 2011-06-05 00:17:13
@lawnsea - 這是特別的(並限於)1.6+(我上面提到的例外)。請注意,即使這樣,你仍然會遇到許多*問題,例如,插件是在jQuery對象上定義的,就像許多事件處理程序一樣(取決於jQuery或它們的插件)。這來自於解決這些問題的經驗......請記住,如果沒有插件等,那麼沒有理由將舊版本保留在首位。 – 2011-06-05 04:39:14