jQuery.mmenu与其他JS冲突

时间:2015-02-09 15:10:02

标签: javascript jquery mmenu

我已将Magento电子商务网站纳入我们现有的网站,一切正常,但在此过程中会使用各种不同的jQuerys和原型。

我想改进网站的移动导航,找到了很棒的jQuery.mmenu插件。我已将它集成到网站中,它看起来很有效,但网站的magento部分中有某些页面的菜单会破坏它们的菜单,因此菜单不再存在。

查看工作页面和非工作页面的代码我发现他们使用的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标签会被打破,因为下拉快速访问,也是错误消息未捕获的TypeError:无法读取属性'未定义的阻止程序显示在控制台中)

在比较两个页面的代码并注意使用的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>

1 个答案:

答案 0 :(得分:0)

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

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

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

在您的网页中包含jQuery后立即放置此代码段。 阅读更多here