最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript之通用簡單的table選項卡實現(xiàn)(二)

 更新時間:2010年05月09日 11:24:13   作者:  
上篇中的選項卡存在這樣的問題:把邏輯封裝在table.js中,不夠靈活,也就是說如果某個選項卡是實現(xiàn)異步請求或者跳轉(zhuǎn),而非div的顯隱切換,那么就得修過table.js來達(dá)到目的,顯然不是我所需要的。
回歸原始,當(dāng)樣式切換后,把控制權(quán)還給頁面,即table.js僅控制切換樣式和記錄操作:
復(fù)制代碼 代碼如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
<style type="text/css">
.sidebar {
width: 140px;
background: #C9E4D6;
min-height: 600px;
float: left;
border-left: solid 1px #C8C8C8;
}
.sidebar ul {
list-style:none;
text-align: left;
padding: 20px 0px 0px 0px;
}
.sidebar ul li {
border-bottom: 1px dotted #C8C8C8;
font-size: 14px;
height: 30px;
line-height: 30px;
padding-left: 15px;
margin-left: 15px;
cursor: pointer;
}
.sidebar .active {
background: #fff;
}
.content{
height:600px;
width:400px;
border-right:1px solid #ccc;
margin-left:140px;
padding:20px;
display:none;
}
</style>
</head>
<body>
<div class="sidebar" id="sidebar">
<ul>
<li point="table1">
選項一
</li>
<li point="table2">
選項二
</li>
<li point="table3">
選項三
</li>
<li point="table4">
選項四
</li>
<li point="table5">
選項五
</li>
</ul>
</div>
<div id="table1" class="content">
這是第一個選項卡的內(nèi)容
</div>
<div id="table2" class="content">
這是第二個選項卡的內(nèi)容
</div>
<div id="table3" class="content">
這是第三個選項卡的內(nèi)容
</div>
<div id="table4" class="content">
這是第四個選項卡的內(nèi)容
</div>
<div id="table5" class="content">
這是第五個選項卡的內(nèi)容
</div>
</body>
<script type="text/javascript" src="table.js"> </script>
<script type="text/javascript">
//回調(diào)函數(shù) 可用參數(shù):obj.lastIndex(上次選項索引) obj.index(當(dāng)前選項索引) obj.arr(選項卡元素數(shù)組)
var back=function(obj)
{
var lastPoint=obj.arr[obj.lastIndex].getAttribute("point");
var curentPoint=obj.arr[obj.index].getAttribute("point");
document.getElementById(lastPoint).style.display="none";
document.getElementById(curentPoint).style.display="block";
}
//參數(shù)分別為:選項塊ID 選中的樣式 回調(diào)函數(shù) 默認(rèn)選擇項(0開始)
table("sidebar", "active",back,0);
</script>
</html>

復(fù)制代碼 代碼如下:

//回調(diào)函數(shù) 可用參數(shù):obj.lastIndex(上次選項索引) obj.index(當(dāng)前選項索引) obj.arr(選項卡元素數(shù)組)
var back=function(obj)
{
var lastPoint=obj.arr[obj.lastIndex].getAttribute("point");
var curentPoint=obj.arr[obj.index].getAttribute("point");
document.getElementById(lastPoint).style.display="none";
document.getElementById(curentPoint).style.display="block";
}
//參數(shù)分別為:選項塊ID 選中的樣式 回調(diào)函數(shù) 默認(rèn)選擇項(0開始)
table("sidebar", "active",back,0);

table.js代碼如下:
復(fù)制代碼 代碼如下:

/**
* @author Sky
*/
var table=function(id,active,callBack,index)
{
table[id]=new Table(id,active,callBack,index);
table[id].bind();
}
var Table=function(id,active,callBack,index)
{
this.index=parseInt(index)||0;//當(dāng)前索引
this.lastIndex=this.index;//上次索引
this.callBack=callBack||function(){};
this.active=active||"active";
this.id=id;
this.arr=document.getElementById(id).getElementsByTagName("li");
}
Table.prototype={
bind:function()
{
//初始化選項樣式
this.setTable(this.index);
//綁定事件
var _self=this;
for (var i = 0; i < this.arr.length; i++)
{
this.arr[i].setAttribute("extatt", i);//鉤子
this.arr[i].onclick = function(e)
{
var _e = window.event||e;
var _target=_e.srcElement || _e.target;
_self.setTable(parseInt(_target.getAttribute("extatt")));
}
}
},
setTable:function(index)
{
this.lastIndex=this.index;
this.index=index;
//清除之前選項的樣式
this.arr[this.lastIndex].className="";
//激活當(dāng)前選項的樣式
this.arr[this.index].className=this.active;
//執(zhí)行回調(diào)函數(shù)
this.callBack(table[this.id]);
}
}

相關(guān)文章

  • JavaScript獲取本機(jī)IP地址三種常用方式

    JavaScript獲取本機(jī)IP地址三種常用方式

    在瀏覽器中使用JavaScript獲取本機(jī)IP地址是不可行的,因為瀏覽器的安全策略禁止JavaScript訪問這樣的信息,這篇文章主要給大家介紹了關(guān)于JavaScript獲取本機(jī)IP地址的三種常用方式,需要的朋友可以參考下
    2023-12-12
  • 淺析JavaScript 調(diào)試方法和技巧

    淺析JavaScript 調(diào)試方法和技巧

    本文給大家淺析javascript調(diào)試方法和技巧,涉及到j(luò)avascript調(diào)試方法和技巧方面的知識,本文介紹的非常詳細(xì),非常具有參考借鑒介紹,感興趣的朋友一起看看吧
    2015-10-10
  • Postman動態(tài)獲取返回值過程詳解

    Postman動態(tài)獲取返回值過程詳解

    這篇文章主要介紹了Postman動態(tài)獲取返回值過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 瀏覽器兼容console對象的簡要解決方案分享

    瀏覽器兼容console對象的簡要解決方案分享

    不同瀏覽器或者版本之間對于console對象的支持不盡相同,而console方法在開發(fā)調(diào)試過程中都是不錯的工具。難道要在上線前把所有console.xxxx去掉以保證某些瀏覽器不報錯么。其實可以變通解決
    2013-10-10
  • 帝國cms首頁列表頁實現(xiàn)點贊功能

    帝國cms首頁列表頁實現(xiàn)點贊功能

    這篇文章主要介紹了帝國cms首頁列表頁實現(xiàn)點贊功能的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • JavaScript判斷當(dāng)前時間是在某個時間點之前/之后

    JavaScript判斷當(dāng)前時間是在某個時間點之前/之后

    本文主要介紹了JavaScript判斷當(dāng)前時間是在某個時間點之前/之后,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • javascript 閉包詳解及簡單實例應(yīng)用

    javascript 閉包詳解及簡單實例應(yīng)用

    這篇文章主要介紹了javascript 閉包詳解及應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • js 定時器setTimeout無法調(diào)用局部變量的解決辦法

    js 定時器setTimeout無法調(diào)用局部變量的解決辦法

    javascript中定時器setTimeout無法調(diào)用局部變量,只需要將setTimeout的第一個參數(shù)改成函數(shù)對象,而不是字符串,就可以了
    2013-11-11
  • 淺述節(jié)點的創(chuàng)建及常見功能的實現(xiàn)

    淺述節(jié)點的創(chuàng)建及常見功能的實現(xiàn)

    本文主要對節(jié)點的創(chuàng)建及常見功能的實現(xiàn)方法進(jìn)行介紹,希望會對大家學(xué)習(xí)javascript有所幫助,下面就跟小編一起來看下吧
    2016-12-12
  • JavaScript中的方法調(diào)用詳細(xì)介紹

    JavaScript中的方法調(diào)用詳細(xì)介紹

    這篇文章主要介紹了JavaScript中的方法調(diào)用詳細(xì)介紹,JavaScript中,如果function屬于一個對象,那么通過對象來訪問該function的行為稱之為“方法調(diào)用”,需要的朋友可以參考下
    2014-12-12

最新評論

安化县| 昌吉市| 志丹县| 固镇县| 宁都县| 辛集市| 柳州市| 玛多县| 洱源县| 武邑县| 龙南县| 襄城县| 钟祥市| 南江县| 文化| 吉水县| 桓仁| 内丘县| 邢台市| 阳曲县| 台南县| 云和县| 砀山县| 梧州市| 许昌市| 福鼎市| 天全县| 漳浦县| 湖南省| 河池市| 珠海市| 吉林省| 屏东县| 云浮市| 乌兰浩特市| 凭祥市| 剑川县| 都安| 渑池县| 芷江| 津市市|