首页 > 解决方案 > 内联 js 中初始化外部延迟 js 资源的 Javascript (JS) 错误

问题描述

有错误未捕获类型错误:$(...).flexslider 不是函数

尽管在延迟的外部 js 中加载了 flexslider,但在 inline 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
            });
}

标签: javascriptflexslider

解决方案


  • 您的代码是正确的,它工作正常
  • 您的文件可能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
    });
}

推荐阅读