我的Javascript函数不是';当添加超过9个元素时不工作

我的Javascript函数不是';当添加超过9个元素时不工作,javascript,jquery,Javascript,Jquery,我开发了这个页面来列出人们。当你点击他们的名字时,我会创建另一个部分来保存那个人的内容。它一直运行良好,但现在我需要在列表中添加9人以上 添加第10个元素时,您不能再单击左侧的名称并加载正确的人员信息。它被选中并跳转到#1元素。我已经提供了下面的代码和上的页面链接 我需要帮助来纠正这个问题,这样它就可以容纳我需要添加到列表中的任意多的人。提前感谢您的建议 JS 管理={ 是的, 默认项目:1, 当前项:0, bios:“.bios.bio”, 生物:“生物”, 经理:“.managers div

我开发了这个页面来列出人们。当你点击他们的名字时,我会创建另一个部分来保存那个人的内容。它一直运行良好,但现在我需要在列表中添加9人以上

添加第10个元素时,您不能再单击左侧的名称并加载正确的人员信息。它被选中并跳转到#1元素。我已经提供了下面的代码和上的页面链接

我需要帮助来纠正这个问题,这样它就可以容纳我需要添加到列表中的任意多的人。提前感谢您的建议

JS

管理={
是的,
默认项目:1,
当前项:0,
bios:“.bios.bio”,
生物:“生物”,
经理:“.managers div.bio”,
经理链接:“.managers a”,
topLinks:“.bio a.top”,
分页:“.bio.paging”,
生物名称:“.bio h1”,
yellowArrowSrc:“public/assets/common/arrow link.png”,
blueArrowSrc:“public/assets/common/arrow链接blue.png”,
init:function(){
这个.log(“management.init()”);
//计数bios
this.bioCount=$(this.bios).length;
this.log(“find”+this.bioCount+“bios.”);
//隐藏bios、名称和“顶部”链接,显示分页链接
$(this.bios).hide();
$(this.topLinks).hide();
$(this.bioNames.hide();
$(this.paging).show();
//显示默认项
this.showItem(this.defaultItem);
//调整生物链接
$(this.managerLinks)。单击(函数(e){
e、 预防默认值();
management.linkClick($(this.parent());
});
//启用下一次和上一次单击
$(this.paging+“.next”).css(“光标”、“指针”)。单击(函数(){
management.nextClick();
});
$(this.paging+“.prev”).css(“光标”、“指针”)。单击(函数(){
management.prevClick();
});
},
单击:函数(){
此.log(“prevClick()”);
newItem=this.currentItem-1;
如果(新项目<1){
newItem=this.bioCount;
}
此.showItem(newItem);
},
nextClick:function(){
this.log(“nextClick()”);
newItem=this.currentItem+1;
if(newItem>this.bioCount){
newItem=1;
}
此.showItem(newItem);
},
链接点击:功能(哪个){
this.showItem(which.attr(“class”).substr(3,1));
},
showItem:函数(哪个){
此.log(“showItem(“+which+”));
if(which==此.currentItem){
此.log(“-->已中止:项已显示”);
}否则{
$(this.bio+this.currentItem).hide();
$(this.bio+which.show();
$(this.manager).removeClass(“当前”);
$(this.manager+which).addClass(“当前”);
$(this.manager+“img.arrow”).attr(“src”,this.yellowsarrowsrc);
$(this.manager+which+“img.arrow”).attr(“src”,this.blueArrowSrc);
this.currentItem=which;
}
},
日志:功能(消息){
if(this.debug){
控制台日志(消息);
}
},
//======对象结束=====
内对象:1
}
$(文档).ready(函数(){
management.init();
});
这一部分不适用于多个数字,而且通常不是正确的方法,因为
class
中类的顺序并不重要。至少,您应该使用数据属性:

<div class="bio" data-bio="10">
如果你想成为亚字符串,你有一个非常好的链接:

// adjust bio links
$(this.managerLinks).click(function(e) {
    management.linkClick(this);
    e.preventDefault();
});

this.showItem(which.attr(“class”).substr(3,1))神奇的数字,它们是什么意思(提示-9后面的数字在10的基础上不止一个数字)是的,看看HTML,minitech是对的。他对元素进行了硬编码,也对substr值进行了硬编码。
<div class="bio" data-bio="10">
this.showItem(which.data("bio"));
// adjust bio links
$(this.managerLinks).click(function(e) {
    management.linkClick(this);
    e.preventDefault();
});
linkClick: function(which) {
    this.showItem(which.getAttribute("href").match(/\d+/)[0]);
},