美文网首页工作生活
实现选项卡的5种方式

实现选项卡的5种方式

作者: 没了提心吊胆的稗子 | 来源:发表于2019-07-04 19:38 被阅读0次
// 切换选项卡的方法,需要传点击li的下标index
function changeTab(index) {
    for(var i = 0; i < oList.length; i ++){
        oList[i].className = '';
        oDiv[i].className = '';
    }
    oList[index].className = 'select';
    oDiv[index].className = 'select';
}

一、自定义属性

每次给点击的li添加自定义属性myIndex,在点击触发事件的时候,传myIndex进行切换

for (let i = 0; i < oList.length; i++) {
    oList[i].myIndex = i;
    oList[i].onclick = function () {
        changeTab(this.myIndex); // this就是当前点击的li
    }
}

二、IE6 let关键字

for (let i = 0; i < oList.length; i++) {
    oList[i].onclick = function () {
        changeTab(i);
    };
}

三、闭包(1)

for (let i = 0; i < oList.length; i++) {
    oList[i].onclick = function () {
        return function () {
            changeTab(i);
        };
    };
}

四、闭包(2)

// 自执行函数
for (var i = 0; i < oList.length; i++) {
    ~function (i){
        oList[i].onclick = function () {
            changeTab(i);
        }
    }(i);
}

五、换一个思路优化,每次点击清空上一个选项卡的样式而不是所有的

var preIndex = 0;
for (var i = 0; i < oList.length; i++) {
    oList[i].currentIndex = i;
    oList[i].onclick = function () {
        //上一个跟当前点击是同一个,后续处理不需要做
        if(preIndex === this.currentIndex)
            return;
        // 先把上一个清除
        oList[preIndex].className = oDiv[preIndex].className = null;
        // 再让当前这个为select
        this.className = oDiv[this.currentIndex].className = 'select';
        // 更新下一次点击的上一个
        preIndex = this.currentIndex;
    }
}

相关文章

  • Anroid入门 -- Tab选项卡

    实现方式 Android 实现Tab选项卡的方式非常多,印象当中就有这么几种: 传统的ViewPager Frag...

  • 使用ViewPager+Fragment实现选项卡切换效果

    实现效果 本实例主要实现用ViewPage和Fragment实现选项卡切换效果,选项卡个数为3个,点击选项卡或滑动...

  • 原生JavaScript封装选项卡插件

    一、初步实现选项卡 html css 基础JavaScript 错误绑定点击事件的方式 以上方式绑定点击事件是达不...

  • 原生js选项卡

    js实现选项卡

  • 选项卡

    选项卡: jquery实现的效果:

  • jQuery其他操作

    这篇文章写一个选项卡的实现。首先做一个HTML文件 然后设置css样式,将这个按照选项卡的方式显示出来。 然后是为...

  • js一些基础知识2

    72、按钮控制选项卡,加左右按钮实现 73、自动播放选项卡,定时运行按钮选项卡中的next 74、延时选项卡(京东...

  • 实现选项卡的5种方式

    一、自定义属性 每次给点击的li添加自定义属性myIndex,在点击触发事件的时候,传myIndex进行切换 二、...

  • JavaScript面向对象-实现tab切换

    页面中有多个选项卡,采用面向对象的方式实现. 代码简洁,有效减少代码冗余,便于后期维护 大家可以在这个基础上根据需...

  • 2017.11.9

    RowCount 获取控件的选项卡条中当前正显示的行数 SizeMode 获取或设置调整控件的选项卡大小的方式,其...

网友评论

    本文标题:实现选项卡的5种方式

    本文链接:https://www.haomeiwen.com/subject/wucdhctx.html