国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

選項卡(面向對象)

468122151 / 2632人閱讀

摘要:普通寫法轉換過程先變型盡量不要出現函數嵌套函數可以有全局變量把中不是賦值的語句放到多帶帶函數中改成面向對象全局變量就是屬性函數就是方法中創建對象改指向事件或定時器問題現要求再創建一個選項卡,自動輪播,只需新增修改和新增一個方法

html:

111
222
333

css:

#div1 div{width: 200px; height: 200px;border:1px #000 solid; display: none;}
.active{background:#f00;}

js:

// 普通寫法

    window.onload = function () {
        var oParent = document.getElementById("div1");
        var aInput = oParent.getElementsByTagName("input");
        var aDiv = oParent.getElementsByTagName("div");
        for (var i = 0; i < aInput.length; i++) {
            aInput[i].index = i;
            aInput[i].onclick = function () {
                for (var i = 0; i < aInput.length; i++) {
                    aInput[i].className = "";
                    aDiv[i].style.display = "none"
                }
                this.className = "active";
                aDiv[this.index].style.display = "block"
            }
        }
    }
    

轉換過程
-先變型 盡量不要出現函數嵌套函數,可以有全局變量,把onload中不是賦值的語句放到多帶帶函數中

    var oParent = null;
    var aInput = null;
    var aDiv = null;
    window.onload = function () {
        oParent = document.getElementById("div1");
        aInput = oParent.getElementsByTagName("input");
        aDiv = oParent.getElementsByTagName("div");
        init();
    }

    function init() {
        for (var i = 0; i < aInput.length; i++) {
            aInput[i].index = i;
            aInput[i].onclick = change;
        } 
    }

    function change() {
        for (var i = 0; i < aInput.length; i++) {
            aInput[i].className = "";
            aDiv[i].style.display = "none"
        }
        this.className = "active";
        aDiv[this.index].style.display = "block"
    }
    

//改成面向對象
全局變量就是屬性 函數就是方法 onload中創建對象 改this指向(事件或定時器問題)

    window.onload = function () {
       var t1 = new Tab()
       t1.init();
    }
    function Tab() {
        this.oParent = document.getElementById("div1");
        this.aInput = this.oParent.getElementsByTagName("input");
        this.aDiv = this.oParent.getElementsByTagName("div");
    }
    Tab.prototype.init = function () {
        var This = this;
        for (var i = 0; i < this.aInput.length; i++) {
            this.aInput[i].index = i;
            this.aInput[i].onclick = function (){
                This.change(this);
            }
        } 
    }
    Tab.prototype.change = function (obj) {
        for (var i = 0; i < this.aInput.length; i++) {
            this.aInput[i].className = "";
            this.aDiv[i].style.display = "none"
        }
        obj.className = "active";
        this.aDiv[obj.index].style.display = "block"
    }
    

現要求再創建一個選項卡,自動輪播,只需新增div2 修改init和新增一個autoPlay方法

    window.onload = function () {
       var t1 = new Tab("div1")
       t1.init();
       var t2 = new Tab("div2")
       t2.init();
       t2.autoPlay();
    }
    function Tab(id) {
        this.oParent = document.getElementById(id);
        this.aInput = this.oParent.getElementsByTagName("input");
        this.aDiv = this.oParent.getElementsByTagName("div");
        this.iNow = 0;
    }

    Tab.prototype.autoPlay = function () {
        var This = this;
        setInterval(function () {
            if(This.iNow == This.aInput.length-1) {
                This.iNow = 0;
            }else {
                This.iNow++;
            }
            for (var i = 0; i < This.aInput.length; i++) {
                This.aInput[i].className = "";
                This.aDiv[i].style.display = "none"
            }
            This.aInput[This.iNow].className = "active";
            This.aDiv[This.iNow].style.display = "block"
        }, 2000)
    }

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94079.html

相關文章

  • 選項面向對象

    摘要:普通寫法轉換過程先變型盡量不要出現函數嵌套函數可以有全局變量把中不是賦值的語句放到單獨函數中改成面向對象全局變量就是屬性函數就是方法中創建對象改指向事件或定時器問題現要求再創建一個選項卡,自動輪播,只需新增修改和新增一個方法 html: 111 222 333 css: #div1 div{width: 200px; heig...

    ZweiZhao 評論0 收藏0
  • [js高手之路] es6系列教程 - 新的類語法實戰選項

    摘要:其實的面向對象很多原理和機制還是的,只不過把語法改成類似和老牌后端語言中的面向對象語法一用封裝一個基本的類是不是很向和中的類其實本質還是原型鏈,我們往下看就知道了首先說下語法規則中的就是類名,可以自定義就是構造函數,這個是關鍵字,當實例化對 其實es6的面向對象很多原理和機制還是ES5的,只不過把語法改成類似php和java老牌后端語言中的面向對象語法. 一、用es6封裝一個基本的類 ...

    yintaolaowanzi 評論0 收藏0
  • JS面向對象1

    摘要:什么是面向對象編程用對象的思想去寫代碼,就是面向對象編程過程式寫法面向對象寫法我們一直都在使用對象數組時間面向對象編程的特點抽象抓住核心問題封裝只能通過對象來訪問方法繼承從已有對象上繼承出新的對象多態多對象的不同形態對象的組成方法行為操作對 什么是面向對象編程 用對象的思想去寫代碼,就是面向對象編程 過程式寫法 面向對象寫法 我們一直都在使用對象 數組Array 時間Dat...

    xumenger 評論0 收藏0
  • 談談javascript插件的寫法

    插件顧名思義就是能在一個頁面多處使用, 各自按自己的參數配置運行, 并且相互不會沖突.會寫javascript插件是進階js高級的必經之路, 也是自己所學知識的一個典型的綜合運用. 如果你還沒頭緒, 無從下手的話, 不用著急, 今天我們就一起來探討一下插件的一般寫法.所需技能: 1.面向對象用法 2.閉包的理解 3.變量作用域的理解 以一個tab選項卡的為例: 第一步: 我們需要寫html結...

    lakeside 評論0 收藏0

發表評論

0條評論

468122151

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<