猿问

新手 关于JS面向对象编写的效果的调用方式的问题?

第一次编写了面向对象的效果,页面有四个选项卡,在onload里这样调用发现只有最后一个好使……

求帮助 我需要怎样调用这个函数啊?

ps: tools.getByClass tools.$ 都写了。

window.onload = function() {

    var tab1 = new Tab('shop','nav','shop');

    var tab2 = new Tab('map','nav','map');

    var tab3 = new Tab('konw','gradient','con');

    var tab4 = new Tab('listTab','gradient','sideCon');

}



function Tab(id,className,divid) {

    this.aBtn = tools.getByClass(id,className)[0].getElementsByTagName('li');

    this.aDiv = tools.$(divid).getElementsByTagName('div');

    _this = this;

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

        this.aBtn[i].index = i;

        this.aBtn[i].onclick = function() {

            _this.tab(this);

        }

    }

}

Tab.prototype.tab =  function(oBtn) {

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

        this.aBtn[i].className = 'gradient';

        this.aDiv[i].style.display ='none';

    }

    oBtn.className = 'active';

    this.aDiv[oBtn.index].style.display = 'block';

}


跃然一笑
浏览 462回答 1
1回答

呼啦一阵风

_this=this换成var _this=this试试
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答