1

我在尝试更新 page.xml 时遇到问题。我需要进行此修复才能使我的 jquery 插件正常工作。

基本上在我的文本编辑器中,我将 jquery 插件放在 jquery 库下方并保存了它。

<action method="addItem"><type>skin_js</type><name>js/jquery.min.js</name></action>
<action method="addJs"><script>nanoScroll/nanoScroll.js</script></action>
<action method="addJs"><script>customScroll/jquery.mCustomScrollbar.concat.min.js</script></action> 

但是,如果我检查页面并检查视图源,这就是我得到的。

<script type="text/javascript" src="http://cudsly.dev/js/nanoScroll/nanoScroll.js"></script>
<script type="text/javascript" src="http://cudsly.dev/js/customScroll/jquery.mCustomScrollbar.concat.min.js"></script>

<script type="text/javascript" src="http://cudsly.dev/skin/frontend/baby/default/js/jquery-ui-1.10.3.custom.js"></script>
<script type="text/javascript" src="http://cudsly.dev/skin/frontend/baby/default/js/jquery.min.js"></script>
<script type="text/javascript" src="http://cudsly.dev/skin/frontend/baby/default/js/bootstrap.min.js"></script>

该插件位于 jQuery 库之上,导致此错误 -

未捕获的 ReferenceError:jQuery 未定义 nanoScroll.js:2

未捕获的 ReferenceError:未定义 jQuery

4

2 回答 2

1

当你打电话给

<action method="addJs"><script>nanoScroll/nanoScroll.js</script></action>

这与拨打电话相同

<action method="addItem"><type>js</type><script>nanoScroll/nanoScroll.js</script></action>

添加到标题的每个“项目”都有一个类型。类型;的文件位于根级js/文件夹中。类型skin_js的文件位于skin/frontend/[package]/[theme]/js文件夹中。在您的情况下packagetheme分别是babydefault

与您的问题更相关:虽然 Magento 将按照它们在布局中添加的顺序呈现项目,但 Magento 先呈现所有项目js然后呈现所有skin_js文件夹。因为您(或您的主题开发人员)已将他们的 jquery 副本放在主题文件夹中,所以它总是会在您使用addJs.

你的两个选择是:

  1. 将 jquery 移动到js/文件夹中,并将addItem布局更新调用更改为addJs调用

  2. 将您的代码移动到主题文件夹中并将您的addJs布局更新调用更改为addItem调用

于 2013-08-27T07:58:35.223 回答
1

您可能想要移动jquery.js到 js 文件夹内。不需要在主题 js 文件中包含它,因为 jquery 对于所有主题都是相同的。移动后只需替换此行:

<action method="addItem"><type>skin_js</type><name>js/jquery.min.js</name></action>

有了这个

<action method="addJs"><script>jquery.min.js</script></action>
于 2013-08-27T07:59:55.230 回答