zoukankan      html  css  js  c++  java
  • 面向对象与闭包的使用

    <html>
    <head>
        <title>wirelib</title>
    </head>
    <script>
       //document.title = document.documentElement.clientWidth;
        /*
         *  1.onload 实例化对象
         *  2.改造函数对象的属性及方法
         *  3.使用了定时器,事件赋值函数,需注意闭包的使用
         */
        function TabSwitch(id) {
            var _this = this;
            var oDiv = document.getElementById(id);
            this.btns = oDiv.getElementsByTagName("input");
            this.divs = oDiv.getElementsByTagName("div");
            console.log(this)
            for (var i=0; i<this.btns.length; i++) {
               this.btns[i].index = i;
               
               //事件使用对象的方法,需转用闭包功能
               this.btns[i].onclick = function(){ _this.tab(this);}; 
            }
        }
        TabSwitch.prototype.tab = function(that){
            alert(that);    //触发事件对象
            for (var i=0; i<this.btns.length; i++) {
               this.btns[i].className = "";
               this.divs[i].style.display="none";
            }
            that.className = "active";
            this.divs[that.index].style.display="block";
        }
        window.onload = function(){
            var tab = new TabSwitch("oDiv");
        }
    </script>
    <style>
        .active{border: 1px solid red;}
    </style>
    <body style="margin:10px; border: 10px solid red">
    
    <div id="oDiv" style="border: 1px solid red; position: absolute; 120px;height: 120px;"></canvas>
        <input type="button" value="a"/>
        <input type="button" value="b"/>
        <input type="button" value="c"/>
        <div>aaaa</div>
        <div style="display: none">bbbb</div>
        <div style="display: none">cccc</div>
    </body>
    </html>
  • 相关阅读:
    HDU 1856 More is better
    并查集模板
    HDU 1325 Is It A Tree?
    HDU 1272 小希的迷宫
    CodeVS 2639 约会计划
    POJ 1163 数字三角形
    HDU 1232 畅通工程
    HDU 1213 How Many Tables
    树形结构打印二叉树
    网址收藏
  • 原文地址:https://www.cnblogs.com/xcai/p/3205610.html
Copyright © 2011-2022 走看看