Magento显示jQuery彼此冲突
我对Magento很新手。 我已经使用横幅rotaor脚本来显示横幅。 因为我必须在每个页面上显示横幅,这就是为什么我在header.phtml
文件中实现了滑块,以便我可以在每个页面中显示横幅。 所以在header.phtml我的滑块代码是这样的
<script language="javascript">
jQuery.noConflict();
jQuery(document).ready(function(){
bannerRotator('#bannerRotator', 500, 5000, true);
});
</script>
<div id="bannerRotator">
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('homepageslider')->toHtml(); ?>
</div>
这里的滑块运行良好,但当我看到Firefox中的console tab
,我得到了一些错误。这里是控制台选项卡错误的图像。 为了解决我搜索的所有问题,并了解到jQuery有冲突。 所以为了清楚说明我使用了jQuery.noConflict
并且也将所有$
都删除到了jQuery
。 但我仍然遇到同样的问题。 任何帮助和建议都将非常可观。 谢谢
现场可以在这里找到
在app / design / frontend / default / [主题名称] /template/page/html/head.phtml文件中包含jquery.noConflict。
在包含jquery之后,并且在getCssJsHtml()之前添加此权限
我在实现中更进了一步,并将它命名为$ j var,但您可以这么做,或者只是实现jquery.noConflict();
如果您使用var $ j,那么您的所有jQuery调用都将与该对象一起使用。
我这样做了:
!-- adding jQuery -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
//<![CDATA[
var $j = jQuery.noConflict();
//]]>
</script>
<!-- ************* -->
<?php echo $this->getCssJsHtml() ?>
在你的header.phtml中,你需要像这样调用你的滑块:
<script language="javascript">
$j(document).ready(function(){
bannerRotator('#bannerRotator', 500, 5000, true);
});
</script>
你有两个问题。
1)
你包含jQuery 两次 。 你有jquery.js(1.7.1),还包括jquery-1.4.4.min.js。 这是造成正在看到的问题。
在项目中搜索字符串'jquery-1.4.4.min.js',你可能会在XML配置文件中找到一个exntry,试着评论一下。
可能两个模块都是通过Magento XML配置添加jQuery。 删除模块XML配置文件中的这些条目之一,问题应该消失。 我建议删除jquery-1.4.4.min.js,因为大多数其他jquery插件都会包含jquery-1.4.4.min.js,这会导致更多问题。
2)
在使用jquery之后调用jQuery.noConflict()。 如上所述,获取这个结果的最好方法是打开你的jquery.js文件,并将其添加到文件的最后:jQuery.noConflict();
你必须添加jQuery.noConflict();
到jquery.js脚本文件的末尾,而不是在它之外,因为它必须在包含prototype.js脚本之前调用。