我正在将内容滑块集成到magento主题中,但是js存在一些问题。 我收到错误“$未定义”,然后我从网站上找到了一个解决方案,说明我应该添加这行“jQuery.noConflict();”进入我的jquery文件。
然后在home.phtml中,: -
<script type="text/javascript">
var $s = jQuery.noConflict();
$s(document).ready(function(){
$("#featured > ul").tabs({fx:{opacity: "toggle"}}).tabs("rotate", 5000, true);
});
</script>
在我的page.xml中,这是我包含js
的方式<action method="addJs"><script>jquery/jquery.js</script></action>
<action method="addJs"><script>jquery/jquery-ui.min.js</script></action>
<action method="addJs"><script>prototype/prototype.js</script></action>
完成上述更改后,我收到错误“jQuery未定义”
欣赏任何建议。提前谢谢!
已编辑: 通过从CMS页面调用js解决此问题 - &gt;内容: -
<script type="text/javascript">// <![CDATA[
var $j = jQuery.noConflict(); jQuery(document).ready(function($) { jQuery("#featured ul").tabs({fx:{opacity:"toggle"}}).tabs("rotate", 5000, true); }); // >
// ]]></script>
在CMS页面 - &gt;设计,包括所需的js文件: -
<reference name="head">
<action method="addItem"><type>skin_css</type><name>css/slider.css</name></action>
<action method="addItem"><type>skin_js</type><name>js/jquery.min.js</name></action>
<action method="addItem"><type>skin_js</type><name>js/jquery-ui.min.js</name></action>
</reference>
但是,只有特定页面使用的是js而不是每个页面时,此方法才有用。 :)
答案 0 :(得分:3)
实际上,有一个更好的替代Mathew的建议。
使用闭包来限制$的范围,在您的示例中,您需要更改以下代码:
$(document).ready(function(){
$("#featured > ul").tabs({fx:{opacity: "toggle"}}).tabs("rotate", 5000, true);
});
对于诸如此类的事情:
jQuery.noConflict();
(function($) {
$(document).ready(function(){
$("#featured > ul").tabs({fx:{opacity: "toggle"}}).tabs("rotate", 5000, true);
});
})(jQuery);
此外,您需要将这些addJs调用放入引用'head',以将它们放在HTML源代码中的正确位置。现在,它们可能在根块中。
答案 1 :(得分:1)
在 /template/page/html/head.phtml
的末尾插入以下代码<script type="text/javascript">
jQuery.noConflict();
</script>
在脚本文件中使用jQuery代替$。 您的代码看起来像
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#featured > ul").tabs({fx:{opacity:"toggle"}}).tabs("rotate", 5000,
true);
});
</script>
jquery 1.5.2v适用于magento。
希望这会对你有所帮助。
答案 2 :(得分:0)
您必须更改脚本中$的所有实例才能使用jQuery()。有关更多信息,请参阅文档:
http://api.jquery.com/jQuery.noConflict/
或者,您可以将mXperts插件用于作业:
http://www.magentocommerce.com/magento-connect/mxperts/extension/1619/mxperts--jquery-base
答案 3 :(得分:0)
您可以使用var $j = jQuery.noConflict();
。此代码包含在您的脚本中,并使用$j
代替$
。