2015-09-07 93 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冲突。无论如何感谢您的投入和时间。 –