• javascript编写Tab选项卡


    <div class="box" id="tabFir">
        <ul >
            <li class="selected">页卡一</li>
            <li>页卡二</li>
            <li>页卡三</li>
        </ul>
        <div class="selected">内容一</div>
        <div>内容二</div>
        <div>内容三</div>
    </div>
    <script>
        window.onload = function(){
            var tabFir = document.getElementById('tabFir'),
            oLis = tabFir.getElementsByTagName('li'),
            oDivs = tabFir.getElementsByTagName('div');
            for (var i = 0; i < oLis.length; i++) {
                (function (num){
                    oLis[i].onclick = function(){
                        //形成了一个闭包
                        changeTab(num);
                    }
                })(i);
            }
            function changeTab(n) {
                for (var i = 0; i < oLis.length; i++) {
                    oLis[i].className = "";
                    oDivs[i].className = "";
                }
                oLis[n].className = 'selected';
                oDivs[n].className = 'selected';
            }
        }
    </script>

    这是最基本的一个选项卡的编写方式。第一步for循环为每个li 绑定了点击事件。这样做不太好。我们用事件委托的方法,把点击事件绑定在父级元素上。

    <script>
        window.onload = function(){
            var tabFir = document.getElementById('tabFir'),
            oLis = tabFir.getElementsByTagName('li'),
            oDivs = tabFir.getElementsByTagName('div');
            for(var i=0;i<oLis.length;i++){
                oLis[i].index = i;
            }
             //事件委托
            tabFir.addEventListener('click',function(e){
                //兼容性处理
                var event = e ||window.event;
                var target = event.target || event.srcElement;
                //判断是否匹配目标元素
                if(target.nodeName.toLocaleLowerCase() === 'li'){
                       var index = target.index;
                    changeTab(index);
                }
            });
            function changeTab(n) {
                for (var i = 0; i < oLis.length; i++) {
                    oLis[i].className = "";
                    oDivs[i].className = "";
                }
                oLis[n].className = 'selected';
                oDivs[n].className = 'selected';
            }
        }
    
    </script>
  • 相关阅读:
    Java提高学习之Object(5)
    cmd命令。
    CacheView。
    快速界面:QML。
    抓包工具。
    打包安装程序。
    AS:加载新版本的SWF文件。
    as自定义菜单。
    as [Frame]元标签
    转载:Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式
  • 原文地址:https://www.cnblogs.com/qianxunpu/p/8042839.html
Copyright © 2020-2023  润新知