2011-03-04 52 views
1

我們有一個網站,我們希望我們的客戶使用iFrame嵌入他們的網站。不幸的是,它工作在每一個瀏覽器除了IE慘6,7和8如何使用jQuery.noConflict()解決IE上的jQuery衝突?

的問題是,我們得到:

對象不支持此屬性或方法。

第一次提到$在我們的jQuery中。我們知道爲什麼會發生這種情況,顯然是由於與客戶現場的現有JS庫衝突。但是,我們不知道的是如何解決這個問題。

這是一個使用jQuery 1.4.2的Rails 3應用程序。我們不知道其中要撥打jQuery.noConflict()的電話。另外,我們對於我們正在做的衆多jQuery插件會做什麼感到困惑。任何人都可以提供任何見解嗎?

回答

2

noConflict()放棄了$所以其他庫的控制可能會使用它。

我會用這段代碼包裝所有的jQuery代碼。

$.noConflict(); 
    jQuery(document).ready(function($) { 
    // Code that uses jQuery's $ can follow here. 
    }); 

這將有效地傳遞$回到你準備的功能,所以你可能會像你期望使用它。

+0

+1給你這比我好 – mcgrailm 2011-03-04 17:29:38

0

jQuery.noConflict();作爲您在頁面上運行的第一個JS語句(加載您的庫之後)。

例如

$(document).ready(function() { 
    jQuery.noConflict(); 
}); 
0

$something=jQuery.noConflict(); 

now $something becomes $, 

如:

$j=jQuery.noConflict(); 
$j('#anElement').addClass('red'); 

處理插件,使用所有的插件使用jQuery代替$

如果任何插件-in正在使用$而不是此

//your plugin file 
(function(){ 
$=jQuery; 
})();