Magento没有按我想要的顺序加载我的脚本

时间:2015-05-21 13:29:06

标签: magento magento-layout-xml

我正在编辑local.xml文件以加载一些javascript,其中一个是carosule.js,我只希望它在我的索引页面上,所以我可以使用<cms_index_index>节点但是它被实例化按init.js。如何按照我想要的顺序加载它们?

  <cms_index_index>
        <reference name="head">
            <action method="addItem">
            <type>skin_js</type>
            <name>js/mycaro.js</name>
            </action>
        </reference>

    </cms_index_index>

     <default>
        <reference name="head">
            <action method="addItem">
                <type>skin_js</type>
                <name>js/jquery.min.js</name>
            </action> 
            <action method="addItem">
                <type>skin_js</type>
                <name>js/init.js</name>
            </action>

        </reference>
    </default>

目前按此顺序加载

<script type="text/javascript" src="http://localhost/m/skin/frontend/hs1st/default/js/jquery.min.js"></script>
<script type="text/javascript" src="http://localhost/m/skin/frontend/hs1st/default/js/init.js"></script>
<script type="text/javascript" src="http://localhost/m/skin/frontend/hs1st/default/js/mycaro.js"></script>

1 个答案:

答案 0 :(得分:0)

插件的加载不应该取决于文件的加载顺序。您需要在DOM完成加载时触发插件的加载,以确保加载所有必需的文件。

让我们说init.js包含这样的内容;

jQuery('#carousel').Carousel({option:optionvalue});

您希望将其包装在代码中,以便在DOM完成加载时运行,就像这样;

jQuery(window).ready(function () {
    jQuery('#carousel').Carousel({option:optionvalue});
});

请参阅https://api.jquery.com/ready/