2015-09-07 96 views
-1

我拉我的頭髮,因爲我有兩個網站使用相同的代碼和jQuery的工作其中之一,但沒有在另一個。Magento jQuery衝突Swipebox

我的問題,問題是,爲什麼是這樣的網站:

http://www.cobra-workwear.co.uk/bizweld-flame-resistant-coverall.html

給我這個jQuery的錯誤:

TypeError: jQuery(...).swipebox is not a function

jQuery('.swipebox').swipebox();

什麼是困惑我的是,我有這個代碼工作你可以看到:

http://www.onlinefireproducts.co.uk/2kg-carbon-dioxide-extinguisher.html

jQuery(swipebox)在哪裏工作。

任何人都有一個想法,因爲我無法確定什麼是大錯特錯。

在此先感謝。

Magento的版本中使用1.7.0.2 代碼:

<!-- SwipeBox --> 
<script type="text/javascript"> 
;(function($) { 

    jQuery('.swipebox').swipebox(); 

})(jQuery); 
</script> 
+0

看着你的代碼,我發現兩件事情是不恰當的和不正確的。首先,當你使用閉包語法(函數調用自己)時,你應該在閉包函數中使用'$('。swipebox')'而不是'jQuery('。swipebox')'。其次,在函數的開頭你有一個零散的分號。 –

+0

感謝您的時間,但這段代碼的工作原理與我在原始問題中的第二個網址完全相同。 –

回答

1

此外,如果您檢查您的網站的來源,也有被加載在同一頁上的兩個不同版本的jQuery(1.10.2 & 2.1.0),這可能是造成衝突的罪魁禍首。

如果你願意,你有自己的函數來創建它們之間的區別在同一個頁面上使用多個jQuery的版本要求如下圖所示:

<script src='path/to/jquery-1.10.2.js'></script> 
<script> 
var jq1102 = jQuery.noConflict(); 
jq1102(document).ready(function() { 
    //jQuery 1.10.2 specific code 
    //Use jq1102 instead of $ here 
}); 
</script> 
<script src='path/to/jquery-2.1.0.js'></script> 
<script> 
var jq210 = jQuery.noConflict(); 
jq210(document).ready(function() { 
    //jQuery 2.1.0 specific code 
    //Use jq210 instead of $ here 
}); 
</script> 

您還可以使用定義的變量可以更改特定版本的代碼(在代碼上面的var行)在任何基於jQuery的圖書館使用(swipebox,fancybox,jquerymobile等)。

同樣作爲最好的情況下,你可以檢查,如果你真的需要同一頁面上的兩個(或多個)版本的jquery,你只能在任何頁面上有條件地調用所需的jQuery版本。

另請參閱下面的鏈接瞭解詳情:

https://forum.jquery.com/topic/multiple-versions-of-jquery-on-the-same-page

https://api.jquery.com/jquery.noconflict/

Can I use multiple versions of jQuery on the same page?

http://sundropsoftware.com/how-to-use-jquery-noconflict-the-right-way/

希望這有助於你。

+0

這工作 - 謝謝 - 我只是簡單地將代碼移動到標題,我調用了jQuery for 2.1.0並且它踢了進去。兩個站點之間的區別是Zopim聊天插件調用它自己的jQuery。謝謝 –

0

嘗試勞克你swipebox這樣的:

jQuery(document).ready(function(){ 

    jQuery('.swipebox').swipebox(); 

}); 

希望它會是確定與此有關。

+0

對不起,這不起作用 - 我有工作的代碼,它只是在錯誤的地方被調用,因爲它與使用不同版本的Zopim Chat jQuery衝突。無論如何感謝您的投入和時間。 –