代码对了好多遍了,都一样的,不知道有没有跟我一样的同学??
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方法