面向对象选项卡原理


/*
//面向过程
window.onload = function(){
    var oDiv = document.getElementById('div1');
    var aBtn = oDiv.getElementsByTagName('input');
    var aDiv = oDiv.getElementsByTagName('div');

    for(var i=0; i<aBtn.length; i++){
        aBtn[i].index = i;
        aBtn[i].onclick = function(){
            for(var i=0; i<aBtn.length; i++){
                aBtn[i].className = '';
                aDiv[i].style.display = 'none';
            }
            this.className = 'active';
            aDiv[this.index].style.display = 'block';
        }
    };
};
*/
/********************************
改写步骤:   window.onload 初始化整个程序        构造函数 初始化整个对象
            变量 函数                            属性 方法
         1、原则:不能有全套函数,但可以有全局变量(尽量没有)
         2、过程:onload    改  构造函数
                   全局变量  改  属性
                  函数      改  方法
         3、改错:this、事件、闭包、传参
*********************************/

// 面向对象
window.onload = function(){
    new TabSwitch('div1');
}

function TabSwitch(id){
    var _this = this;
    var oDiv = document.getElementById(id);
    this.aBtn = oDiv.getElementsByTagName('input');
    this.aDiv = oDiv.getElementsByTagName('div');

    for(var i=0; i<this.aBtn.length; i++){
        this.aBtn[i].index = i;
        this.aBtn[i].onclick = function(){        //通过闭包传递this
            _this.fnClick(this);
        }
    };
};

TabSwitch.prototype.fnClick = function(oBtn){
    for(var i=0; i<this.aBtn.length; i++){
        this.aBtn[i].className = '';
        this.aDiv[i].style.display = 'none';
    }
    oBtn.className = 'active';
    this.aDiv[oBtn.index].style.display = 'block';
}

优质内容筛选与推荐>>
1、mysql数据库改名
2、[转]android 时间获取以及时间格式化
3、vmware克隆的linux修改mac
4、Spring错误——Test class should have exactly one public constructor
5、在Visual C#中用ListView显示数据记录


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号