Javascript jQuery undefined不是仅在一个细枝文件中的函数
我得到的“未定义不是函数”错误只在这个位置。我在var下拉列表中得到这个,无法识别错误 在其他网站上,我包括了这个。js没有错误 navbar.jsJavascript 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) {
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