1. 程式人生 > >JS學習筆記 - 面向物件 - 選項卡 (普通選項卡改寫)

JS學習筆記 - 面向物件 - 選項卡 (普通選項卡改寫)

 

選項卡3

<script>
window.onload=function ()
{
    new TabSwitch('div1');
};

function TabSwitch(id) // TabSwitch 是 id 的 物件??
{
    // var oDiv=document.getElementById('div1');
    var oDiv=document.getElementById(id);
    
    this.aBtn=oDiv.getElementsByTagName('input'); // 變數 => 屬性
    this
.aDiv=oDiv.getElementsByTagName('div'); //去除了全域性變數 var aBtn = null; var aDiv = null; // 把aBtn / aDiv 變成了 TabSwitch函式的 屬性。 for(var i=0;i<this.aBtn.length;i++) { this.aBtn[i].index=i; this.aBtn[i].onclick = this.fnClick; // fnClick 寫成 this.fnClick //
(這裡不再是函數了,是 TabSwitch的方法,所以要這樣寫) } }; //function fnClick(){}; => TabSwitch.prototype.fnClick=function (){}; // 函式 => 方法 TabSwitch.prototype.fnClick=function () // 給TabSwitch 新增 fnClick 這個方法 { for(var i=0;i<this.aBtn.length;i++) // aBtn.length => this.aBtn.length { this.aBtn[i].className
='' this.aDiv[i].style.display='none'; } oBtn.className='active'; this.aDiv[oBtn.index].style.display='block'; } </script>

 

選項卡2 

<script>
var aBtn=null;  // 全域性變數,window.onload 和 fnClick 都可以用
var aDiv=null;

window.onload=function ()
{
    var oDiv=document.getElementById('div1');
    aBtn=oDiv.getElementsByTagName('input');   
    //這裡獲取變數的內容,能在下面fnClick函式裡識別??
    
    aDiv=oDiv.getElementsByTagName('div');
    
    for(var i=0;i<aBtn.length;i++)
    {
        aBtn[i].index=i;
        aBtn[i].onclick=fnClick;
    }
};

function fnClick()
{
    for(var i=0;i<aBtn.length;i++)
    {
        aBtn[i].className=''
        aDiv[i].style.display='none';
    }
    this.className='active';
    aDiv[this.index].style.display='block';
}
</script>