javascript 通用簡(jiǎn)單的table選項(xiàng)卡實(shí)現(xiàn)
更新時(shí)間:2010年05月07日 17:21:55 作者:
鑒于UI妹妹每次交付過來的選項(xiàng)卡都夾帶了多多少少的js,而且每遇到選項(xiàng)卡就加一點(diǎn)js,造成垃圾低劣代碼逐漸堆積過多了,一直想做一個(gè)通用簡(jiǎn)潔的選項(xiàng)卡庫。
第一步:引用table.js
第二步:定義選中的樣式,比如“active”,應(yīng)用選項(xiàng)卡的塊的ID,比如“sidebar”,默認(rèn)被選中的序號(hào),比如第一個(gè)“0”;
第三步:調(diào)用函數(shù):
一切OK,選項(xiàng)卡響應(yīng)click事件,兼任IE和FF,等有時(shí)間了再優(yōu)化,效果如下:

HTML源代碼如下:
<!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>
<script type="text/javascript" src="table.js"> </script>
<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;
}
</style>
</head>
<body>
<div class="sidebar" id="sidebar">
<ul>
<li>
選項(xiàng)一
</li>
<li>
選項(xiàng)二
</li>
<li>
選項(xiàng)三
</li>
<li>
選項(xiàng)四
</li>
<li>
選項(xiàng)五
</li>
</ul>
</div>
</body>
<script type="text/javascript">
//參數(shù)分別為:默認(rèn)選擇項(xiàng) 應(yīng)用塊的id 選中的樣式
table(0, "sidebar", "active")
</script>
</html>
table.js
/**
* @author Sky
*/
var table=function(index,id,active)
{
table=new Table(index,id,active);
table.bind();
}
var Table=function(index,id,active)
{
this.index=parseInt(index);
this.arr=document.getElementById(id).getElementsByTagName("li");
this.active=active;
}
Table.prototype={
bind:function()
{
this.arr[this.index].className=this.active;//初始化
var _self=this;
for (var i = 0; i < this.arr.length; i++)
{
this.arr[i].setAttribute("ext", i);
this.arr[i].onclick = function(e)
{
var _e = window.event||e;
var _target=_e.srcElement || _e.target;
_self.setClass(parseInt(_target.getAttribute("ext")));
}
}
},
setClass:function(index)
{
this.arr[this.index].className="";
this.arr[index].className=this.active;
this.index=index;
}
}
DEMO下載
復(fù)制代碼 代碼如下:
<script type="text/javascript" src="table.js"> </script>
第二步:定義選中的樣式,比如“active”,應(yīng)用選項(xiàng)卡的塊的ID,比如“sidebar”,默認(rèn)被選中的序號(hào),比如第一個(gè)“0”;
第三步:調(diào)用函數(shù):
復(fù)制代碼 代碼如下:
<script type="text/javascript">
//參數(shù)分別為:默認(rèn)選擇項(xiàng) 應(yīng)用塊的id 選中的樣式
table(0, "sidebar", "active")
</script>
//參數(shù)分別為:默認(rèn)選擇項(xiàng) 應(yīng)用塊的id 選中的樣式
table(0, "sidebar", "active")
</script>
一切OK,選項(xiàng)卡響應(yīng)click事件,兼任IE和FF,等有時(shí)間了再優(yōu)化,效果如下:

HTML源代碼如下:
復(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>
<script type="text/javascript" src="table.js"> </script>
<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;
}
</style>
</head>
<body>
<div class="sidebar" id="sidebar">
<ul>
<li>
選項(xiàng)一
</li>
<li>
選項(xiàng)二
</li>
<li>
選項(xiàng)三
</li>
<li>
選項(xiàng)四
</li>
<li>
選項(xiàng)五
</li>
</ul>
</div>
</body>
<script type="text/javascript">
//參數(shù)分別為:默認(rèn)選擇項(xiàng) 應(yīng)用塊的id 選中的樣式
table(0, "sidebar", "active")
</script>
</html>
table.js
復(fù)制代碼 代碼如下:
/**
* @author Sky
*/
var table=function(index,id,active)
{
table=new Table(index,id,active);
table.bind();
}
var Table=function(index,id,active)
{
this.index=parseInt(index);
this.arr=document.getElementById(id).getElementsByTagName("li");
this.active=active;
}
Table.prototype={
bind:function()
{
this.arr[this.index].className=this.active;//初始化
var _self=this;
for (var i = 0; i < this.arr.length; i++)
{
this.arr[i].setAttribute("ext", i);
this.arr[i].onclick = function(e)
{
var _e = window.event||e;
var _target=_e.srcElement || _e.target;
_self.setClass(parseInt(_target.getAttribute("ext")));
}
}
},
setClass:function(index)
{
this.arr[this.index].className="";
this.arr[index].className=this.active;
this.index=index;
}
}
DEMO下載
您可能感興趣的文章:
- javascript實(shí)現(xiàn)tabs選項(xiàng)卡切換效果(自寫原生js)
- js實(shí)現(xiàn)tab選項(xiàng)卡函數(shù)代碼
- js tab 選項(xiàng)卡
- 跨瀏覽器通用、可重用的選項(xiàng)卡tab切換js代碼
- 純php打造的tab選項(xiàng)卡效果代碼(不用js)
- Vue.js組件tabs實(shí)現(xiàn)選項(xiàng)卡切換效果
- javascript+css 新聞顯示tab 選項(xiàng)卡效果
- javascript 定時(shí)自動(dòng)切換的選項(xiàng)卡Tab
- Javascript 自適應(yīng)高度的Tab選項(xiàng)卡
- js自定義Tab選項(xiàng)卡效果
相關(guān)文章
JavaScript數(shù)組排序小程序?qū)崿F(xiàn)解析
這篇文章主要介紹了JavaScript數(shù)組排序小程序?qū)崿F(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01javascript實(shí)現(xiàn)在網(wǎng)頁中運(yùn)行本地程序的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)在網(wǎng)頁中運(yùn)行本地程序的方法,實(shí)例分析了JavaScript基于ActiveXObject運(yùn)行本地程序的技巧,需要的朋友可以參考下2016-02-02JavaScript參數(shù)個(gè)數(shù)可變的函數(shù)舉例說明
JavaScript允許一個(gè)函數(shù)傳遞個(gè)數(shù)可變的參數(shù),因?yàn)橛衋rguments這個(gè)內(nèi)置對(duì)象,它一個(gè)函數(shù)傳遞的所有參數(shù)的數(shù)組2014-10-10JavaScript原型對(duì)象原理與應(yīng)用分析
這篇文章主要介紹了JavaScript原型對(duì)象原理與應(yīng)用,結(jié)合實(shí)例形式分析了javascript原型對(duì)象的概念、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-12-12