jQuery.menu与其他JS冲突

jQuery.mmenu conflict with other JS

本文关键字:JS 冲突 其他 menu jQuery      更新时间:2023-09-26

我已经将一个Magento电子商务网站纳入了我们现有的网站,一切都还可以,但在这一过程中使用了各种不同的jQuery和原型。

我想改进网站的移动导航,发现了很棒的jQuery.menu插件。我已经将其集成到了网站中,它看起来和大多数情况下都很好,但网站的magento部分中有一些页面的js被菜单破坏了,因此菜单就不复存在了。

查看工作页面和非工作页面的代码,我发现它们使用的js有一些差异,但我不知道如何纠正这个问题:

工作页面:http://www.doble-shop.co.uk/shop/boots.html

非工作页面:http://www.doble-shop.co.uk/shop/richa-monza-waterproof-leather-boots-black.html(请注意,菜单没有显示在网站的移动大小上,js选项卡也被破坏了,下拉式快速访问也是如此,控制台中还显示了Uncaught TypeError的错误消息:无法读取未定义的属性"blocker")

当比较两个页面的代码并注意使用的js时,以下内容包含在断开的页面上,但不包含在工作页面上:

<script type="text/javascript" src="http://www.doble-shop.co.uk/shop/js/varien/product.js"></script>
<script type="text/javascript" src="http://www.doble-shop.co.uk/shop/js/varien/configurable.js"></script>
<script type="text/javascript" src="http://www.doble-shop.co.uk/shop/js/calendar/calendar.js"></script>
<script type="text/javascript" src="http://www.doble-shop.co.uk/shop/js/calendar/calendar-setup.js"></script>
<script type="text/javascript" src="http://www.doble-shop.co.uk/shop/js/infortis/jquery/plugins/jquery.cloudzoom.min.js"></script>
<script type="text/javascript" src="http://www.doble-shop.co.uk/shop/js/infortis/jquery/plugins/jquery.colorbox.min.js"></script>

许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。如果您需要在jQuery旁边使用另一个JavaScript库,请通过调用$.noConflict()$的控制权返回给另一个库。在jQuery初始化期间保存$的旧引用;noConflict()只是简单地恢复它们。

如果由于某种原因加载了两个版本的jQuery(这是不推荐的),从第二个版本调用$.noConflict( true );将使全局范围的jQuery变量返回到第一个版本的变量。

<script>
var $ = jQuery.noConflict();
</script>

将这个片段放在页面中包含jQuery之后。点击此处阅读更多信息。