ループidで生成される変数があります。for何らかの理由で、idが渡されると0から1に変わりますcallback。私の推測では、idパラメーターを誤って渡しています。
refreshMenu: function(mods, callback){
var menu = document.getElementById('menu'),
ul = document.createElement('ul');
menu.innerHTML = '';
menu.appendChild(ul);
for(var id = 0; id < mods.length; id++){
var li = document.createElement('li'),
that = this;
ul.appendChild(li);
li.setAttribute('id', id);
li.innerHTML = mods[id].get('name');
console.log(id); // HERE ---> 0
li.addEventListener('click', function(){
that.selectMenu(li, function(){
console.log(id); HERE ---> //1 ?
that.selectList(id - 1);
});
}, false);
}
callback();
},
selectList: function(id)
var activeList = this.activeList();
console.log(id);
if (activeList.id == id){
return;
}
else if (activeList){
activeList.setAttribute('class', '');
};
var target = document.getElementById(id);
target.setAttribute('class', 'activeList');
},
selectMenu: function(li, callback){
if(li.className == 'activeMenu')
return;
var active = document.getElementsByClassName('activeMenu')[0];
if(active)
active.setAttribute('class', '');
li.setAttribute('class', 'activeMenu');
callback();
},