Javascript jQuery undefined不是仅在一个细枝文件中的函数

Javascript jQuery undefined不是仅在一个细枝文件中的函数,javascript,jquery,drop-down-menu,Javascript,Jquery,Drop Down Menu,我得到的“未定义不是函数”错误只在这个位置。我在var下拉列表中得到这个,无法识别错误 在其他网站上,我包括了这个。js没有错误 navbar.js function insertModules($parent, modules) { for (var i = 0; i < modules.length; i++) { var module = modules[i]; if (module.subitems) {

我得到的“未定义不是函数”错误只在这个位置。我在var下拉列表中得到这个,无法识别错误

在其他网站上,我包括了这个。js没有错误

navbar.js

 function insertModules($parent, modules) {
        for (var i = 0; i < modules.length; i++) {
            var module = modules[i];
            if (module.subitems) {
                var $dropdown = $('\
          <li class="dropdown">\
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">' + module.title + ' <b class="caret"></b></a>\
            <ul class="dropdown-menu"></ul>\
          </li>\
        ');
                $parent.append($dropdown);
                var subParent = $dropdown.find('ul');
                insertModules(subParent, module.subitems);
            }
            else {
                insertModule($parent, module);
            }
        }
    }
函数插入模块($parent,modules){
对于(变量i=0;i\
\
    \ \ '); $parent.append($dropdown); var subParent=$dropdown.find('ul'); 插入模块(子家长,模块子项); } 否则{ insertModule($parent,module); } } }
    insertModules的调用

        // set modules
    if (ubnav.authenticated) {
                var $parent = $('#ubnav-modules');
                insertModules($parent, BPNAV_MODULES);
    
            $parent = $('#ubnav-modules-alphabetical');
            for (var i = 0; i < BPNAV_MODULES_ALPHABETICAL.length; i++) {
                var module = BPNAV_MODULES_ALPHABETICAL[i];
                if (module.name !== ubnav.currentModule) {
                    insertModule($parent, module);
                }
                else {
                    var $currentModule = $('#ubnav-current-module');
                    var $currentModuleParent = $currentModule.parent();
                    insertModule($currentModuleParent, module);
                    $currentModule.remove();
                    $currentModuleParent.find('li.active').addClass('current-module').addClass('hidden-lg');
                }
            }
        }
    
     function insertModule($parent, module) {
        var href = (module.url) ? module.url : null;
        if (!href) {
            if (module.location === 'bp') href = ubnav.linkModuleBaseBP;
            else if (module.location === 'ip') href = ubnav.linkModuleBaseIP;
            else if (module.location === 'bp2') href = ubnav.linkModuleBaseBP2;
            else if (module.location === 'meteor') href = ubnav.linkModuleBaseMeteor;
    
            href += (module.suffixPath) ? module.suffixPath : module.name;
        }
        var current = (ubnav.currentModule === module.name) ? ' class="active"' : '';
        $parent.append('<li' + current + '><a href="' + href + '">' + module.title + '</a></li>');
    }
    
    //设置模块
    如果(ubnav.authenticated){
    var$parent=$(“#ubnav模块”);
    插入模块(父模块、BPNAV_模块);
    $parent=$(“#按字母顺序排列的ubnav模块”);
    对于(变量i=0;i”);
    }
    
    您键入了
    insertModule($parent,module)
    但您的函数名为
    insertModules()


    与相同:
    insertModule($currentModuleParent,module)

    我隔离并解决了问题。
    它是一个bootstrap.min.js文件,包含的内容太多。

    您能展示一下调用
    insertModules
    的代码吗?我们不知道它是否封装在一个闭包中,以说明jQuery是否已初始化,或者$parent是否是jQuery变量而不是dom元素。你能用控制台告诉我什么变量是空的吗?如果我设置了空的下拉列表,会出现另一个错误,我以后不能使用.find函数。但是未定义的不是一个函数。啊,现在我看到你添加了一个名为
    insertModule