做了一个tab,明明指定的是onmouseover,但是只有点击一下才有用?

移动到上边的选项没有用,只有点击时才切换?
可是明明设置的是onmouseover啊?
图片描述

<script>   
  function $(id){
            return typeof id==='string'?document.getElementById(id):id;
        }
        window.onload=function(){
            var titles=$('notes-tit').getElementsByTagName('li'),
                divs=$('notes-content').getElementsByTagName('ul');

                if(titles.length!=divs.length)
                    return;
                for(var i=0;i<titles.length;i++){
                    titles[i].id=i;
                    titles[i].onmouseover=function(){
                        for(var j=0;j<titles.length;j++){
                            titles[j].className="";
                            divs[j].style.display="none";
                        }
                        this.className="select";
                        divs[this.id].style.display="block";
                    }
                }
        }

    </script>
阅读 3.9k
2 个回答

似乎又是js 闭包的问题。 可否把你js代码贴出来,我来改改。

其他问题没去测试,闭包可以这样写 你测试看看 
window.onload=function(){
    var titles=$('notes-tit').getElementsByTagName('li'),
        divs=$('notes-content').getElementsByTagName('ul');

        if(titles.length!=divs.length)
            return;
        for(var i=0;i<titles.length;i++){
            titles[i].id=i;
            (function(tag){
                titles[tag].onmouseover=function(){
                    for(var j=0;j<titles.length;j++){
                        titles[j].className="";
                        divs[j].style.display="none";
                    }
                    this.className="select";
                    divs[this.id].style.display="block";
                }
            })(i)
        }
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题