Javascript(JS)错误初始化内联js中的外部deferred js资源

问题描述 投票:0回答:1

有错误未捕获TypeError:$(...)。flexslider不是一个函数

在内联Js中初始化flexslider时虽然在延伸的外部js中加载了flexslider

这是代码

function parseJSAtOnload() {
        var moduleJsPath = "<?php echo BASE_URL.SHARED_ADDONPATH.'modules/fj/js/';?>";
        var links = [moduleJsPath + "flexslider/jquery.flexslider.js",moduleJsPath + "lazyload.min.js"],
        headElement = document.getElementsByTagName("head")[0],
        linkElement, i;
        for (i = 0; i < links.length; i++) {
            linkElement = document.createElement("script");
            linkElement.src = links[i];
            headElement.appendChild(linkElement);
        }
    }
    if (window.addEventListener)
        window.addEventListener("load", parseJSAtOnload, false);
    else if (window.attachEvent)
        window.attachEvent("onload", parseJSAtOnload);
    else window.onload = parseJSAtOnload;


window.onload = function(){
            $('.slider').flexslider({
                selector: ".form-group > .col-md-3",
                animation: "slide",
                animationLoop: false,
                itemWidth: 370,
                itemMargin: 5,
                maxItems:4,
                controlNav: false,
                slideshow: false,
                mousewheel:true
            });
}
javascript flexslider
1个回答
0
投票
  • 你的代码是正确的,它的工作正常
  • 您的文件jquery.flexslider.js可能不在正确的路径上。

解决方案:直接在parseJSAtOnload()标签中应用<script>函数。

您收到的是:TypeError: $(...).flexslider is not a function错误:

检查此更新:

function parseJSAtOnload() {
    var moduleJsPath = "<?php echo BASE_URL.SHARED_ADDONPATH.'modules/fj/js/';?>";
    var links = [moduleJsPath + "flexslider/jquery.flexslider.js",moduleJsPath + "lazyload.min.js"],
    headElement = document.getElementsByTagName("head")[0],
    linkElement, i;
    for (i = 0; i < links.length; i++) {
        linkElement = document.createElement("script");
        linkElement.src = links[i];
        headElement.appendChild(linkElement);
    }
}

parseJSAtOnload();//function call to DOM

window.onload = function(){
    $('.slider').flexslider({
        selector: ".form-group > .col-md-3",
        animation: "slide",
        animationLoop: false,
        itemWidth: 370,
        itemMargin: 5,
        maxItems:4,
        controlNav: false,
        slideshow: false,
        mousewheel:true
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.