zoukankan      html  css  js  c++  java
  • 基于jquery开发的选项卡

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>选项卡</title>
        <script src="../lib/jquery-2.1.4.min.js"></script>
        <script src="app/chosetab.js"></script>
    </head>
    <style>
        #div1 div,#div2 div,#div3 div,#div4 div{ width:200px; height:200px; border:1px #000 solid; display:none;}
        .active{ background:red;}
    </style>
    <body>
    <div id="div1" class="div1 test">
        <input class="active" type="button" value="1">
        <input type="button" value="2">
        <input type="button" value="3">
        <div style="display:block">111111</div>
        <div>222222</div>
        <div>333333</div>
    </div>
    <div id="div2" class="div2 test">
        <input class="active" type="button" value="1">
        <input type="button" value="2">
        <input type="button" value="3">
        <div style="display:block">111111</div>
        <div>222222</div>
        <div>333333</div>
    </div>
    <script>
        $(function () {
            var t1 = new Tab();
            t1.init('.div1',{});
    
            var t2 = new Tab();
            t2.init('.div2',{
                event:'mouseover',
                delay:100,
            });
        })
    </script>
    </body>
    </html>
    ;(function ($, window, document, undefined) {
        function Tab() {//初始化配置
            this.oParent = null;
            this.aInput = null;
            this.aDiv = null;
            this.iNow = 0;
            this.settings = {  //默认参数
                event: 'click',
                delay: 0
            };
        }
        Tab.prototype.init = function (oParent, opt) {//合并配置,调用逻辑处理函数
            $.extend(this.settings, opt);
            this.oParent = $( oParent);
            this.aInput = this.oParent.find('input');
            this.aDiv = this.oParent.find('div');
            this.change();
        };
        Tab.prototype.change = function () {//逻辑处理函数
            var This = this;
            var timer = null;
            This.aInput.on(This.settings.event, function () {
                var _this = this;
                if (This.settings.event == 'mouseover' && This.settings.delay) {
                    timer = setTimeout(function () {
                        show(_this);
                    }, This.settings.delay);
                } else {
                    show(_this);
                }
            }).mouseout(function () {
                clearInterval(timer);
            })
            function show(obj) {//逻辑处理函数主体
                This.aInput.attr('class', '');
                This.aDiv.css('display', 'none');
                $(obj).attr('class', 'active');
                This.aDiv.eq($(obj).index()).css('display', 'block');
            }
        }
        window.Tab = Tab;
    })(jQuery, window, document);
  • 相关阅读:
    关于前端框架讨论的链接
    和BEM的战斗:10个常见问题及如何避免
    BEM —— 源自Yandex的CSS 命名方法论
    JavaScript 语句后应该加分号么?
    彻底搞懂word-break、word-wrap、white-space
    ios UIImageWriteToSavedPhotosAlbum报错 NSPhotoLibraryAddUsageDescription
    Emmet使用手册
    vue-cli入门之项目结构分析
    ios移动端原生滚动条滚动不灵敏问题
    ios点击事件失效
  • 原文地址:https://www.cnblogs.com/yexiangwang/p/5374120.html
Copyright © 2011-2022 走看看