lists[i].onclick=change(this,i); 浏览器打印this为window对象,还没有点击,change就已经执行了

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>实践题 - 选项卡</title>

    <style type="text/css">

     /* CSS样式制作 */  

       *{

           margin:0;

           padding:0;

       }

       .nav{ 

           list-style:none;

           margin-top:20px;

           position:relative; 

       }

       .nav li{

           width:50px;

           height:20px;

           float:left;

           border-top:1px solid #ccc;

           border-right:1px solid #ccc;

           border-left:1px solid #ccc;

           margin:0 3px;

           padding:8px;

           line-height:20px;

           text-align:center;

           cursor:pointer;

       }

       .nav .li-active{

           border-top:2px solid #e00;

           border-bottom:2px solid #fff;

       }

       .content{

           width:300px;

           height:200px;

           margin-top:-2px;

           border-left:1px solid #00d;

           border-right:1px solid #00d;

           border-bottom:1px solid #00d;

           border-top:2px solid #e00;

       }

       .content .desc{

           position:absolute;

           display:none;

           font:14px/28px Microsoft Yahei;

           padding:10px;

       }

       .content .desc:first-child{

           display:block;

       }

       .clearfix::before,

       .clearfix::after{

           content:".";

           display:block;

           height:0;

           visibility:hidden;

       }

       .clearfix:after{

           clear:both;

       }

    </style>

    <script type="text/javascript">

    // JS实现选项卡切换

    window.onload=function(){

        var nav=document.getElementById("nav");

        var content=document.getElementById("content");

        var lists=nav.getElementsByTagName("li");

        var descs=content.getElementsByTagName("p");

        var i=0;

        for(;i<lists.length;i++){ 

            lists[i].onclick=change(this,i); 

        }  

        function change(o,num){

            console.log(o+num);

            clearStyle();

            o.className="li-active";

            descs[num].style.display="block";

        }

        function clearStyle(){ 

            for(var i=0;i<descs.length;i++){

                lists[i].className="";

                descs[i].style.display="none";

            }

        }

    }

    </script>

</head>

<body>

<!-- HTML页面布局 -->

<div>

    <ul class="nav clearfix" id="nav">

        <li>房产</li>

        <li>家居</li>

        <li>二手房</li>

    </ul>

    <div id="content">

        <p>

           275万购昌平邻铁三居 总价20万买一居<br/>

           200万内购五环三居 140万安家东三环<br/>

           北京首现零首付楼盘 53万购东5环50平<br/>

           京楼盘直降5000 中信府 公园楼王现房<br/>

        </p>

        <p> 

            40平出租屋大改造 美少女的混搭小窝<br/>

            经典清新简欧爱家 90平老房焕发新生<br/>

            新中式的酷色温情 66平撞色活泼家居<br/>

            瓷砖就像选好老婆 卫生间烟道的设计<br/>

        </p>

        <p>

           通州豪华3居260万 二环稀缺2居250w甩<br/>

           西3环通透2居290万 130万2居限量抢购<br/>

           黄城根小学学区仅260万 121平70万抛!<br/>

           独家别墅280万 苏州桥2居优惠价248万<br/>

    </div>

</div>

</body>

</html>


Emily梦
浏览 1455回答 1
1回答

qq_邪风曲_0

lists[i].onclick=function(){change(this,i)}
打开App,查看更多内容
随时随地看视频慕课网APP