zoukankan      html  css  js  c++  java
  • js-01_面向对象选项卡

    首先,面向过程的选择卡js代码台下:

                    window.onload = function () {
                        var oDiv = document.getElementById("div1");
                        var oBtn = oDiv.getElementsByTagName('input');
                        var aDiv = oDiv.getElementsByTagName('div');
                        for (var i = 0; i < oBtn.length; i++) {
                            oBtn[i].index = i;
                            oBtn[i].onclick = function () {
                                for (var i = 0; i < aDiv.length; i++) {
                                    oBtn[i].className = '';
                                    aDiv[i].style.display = 'none';
                                }
                                this.className = "active";
                                aDiv[this.index].style.display = 'block';
                            };
                        }
                    };
    

      基于几代码,改写为面向对象来实现,代码如下:

     window.onload = function () {
                var tab = new TabSwitch('div1');//1、把window.onload事件对应的方法写成构造函数TabSwitch
            };
    
            function TabSwitch(id) {
                var oDiv = document.getElementById(id);
                this.oBtn = oDiv.getElementsByTagName('input');//将外面需要访问的变量改成属性
                this.aDiv = oDiv.getElementsByTagName('div');
                var _this = this;
                for (var i = 0; i < this.oBtn.length; i++) {
                    this.oBtn[i].index = i;
                    this.oBtn[i].onclick = function () {
                        _this.tab(this);//这里的this变成了oBtn对象了,所以要在上面保存构造函数创建的对象代表的this
                    };
                }
            };
    
            this.TabSwitch.prototype.tab = function (oBtn) {
                for (var i = 0; i < this.aDiv.length; i++) {
                    this.oBtn[i].className = '';
                    this.aDiv[i].style.display = 'none';
                }
                oBtn.className = "active";
                this.aDiv[oBtn.index].style.display = 'block';
            };
    

      页面的HTML如下:

        <div id="div1">
            <input class="active" type="button" name="name" value="教育" />
            <input type="button" name="name" value="财经" />
            <input type="button" name="name" value="aaa" />
            <div style="display: block;">
                lasdfae3efasdfae</div>
            <div>
                asdlkfaweiofjasdf</div>
            <div>
                sadfasdflaeifjd;slfew</div>
        </div>
    

      

  • 相关阅读:
    react之redux的使用笔记
    react之jsx的使用
    react之第一个组件的定义及使用
    npm
    webpack热加载
    react使用笔记及生命周期
    移动开发的常见问题
    javascript常用的方法
    cordova local notification plugin
    jqmobi 转换语言
  • 原文地址:https://www.cnblogs.com/XChWaad/p/3329388.html
Copyright © 2011-2022 走看看