代码对了好多遍了,都一样的,不知道有没有跟我一样的同学??


29行 activeRow 被你赋值错了。
我的建议是加个else
.delegate('mouseenter',' li', function(e){
// console.log(e)
if(!activeRow){
// console.log($(e.target));
activeRow = $(e.target).addClass('active');
activeMenu = $('#' + activeRow.attr('data-id'));
activeMenu.removeClass('none');
return;
}else{
if(timer){
clearTimeout(timer);
}
timer = setTimeout(function(){
if(mouseInSub){
return;
}else{
activeRow.removeClass('active');
activeMenu.addClass('none');
activeRow = $(e.target);
activeRow.addClass('active');
activeMenu = $('#' + activeRow.attr('data-id'));
activeMenu.removeClass('none');
timer = null;
}
}, 300)
}
})因为当activeRow不存在的时候,还没有return,就进入下一步,而activeRow这时候没有赋值,所以没有removeClass方法