我只在这个位置上得到"未定义不是函数"错误。我在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);
}
}
}
调用插入模块
// 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>');
}
您已键入insertModule($parent, module)
,但您的函数称为insertModules()
同:insertModule($currentModuleParent, module);
我隔离并解决了这个问题。这是一个bootstrap.min.js文件,包含的内容太多。