javascript之通用简单的table选项卡实现(二)


Posted in Javascript onMay 09, 2010

回归原始,当样式切换后,把控制权还给页面,即table.js仅控制切换样式和记录操作:

<!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"> 
这是第一个选项卡的内容 
</div> 
<div id="table2" class="content"> 
这是第二个选项卡的内容 
</div> 
<div id="table3" class="content"> 
这是第三个选项卡的内容 
</div> 
<div id="table4" class="content"> 
这是第四个选项卡的内容 
</div> 
<div id="table5" class="content"> 
这是第五个选项卡的内容 
</div> 
</body> 
<script type="text/javascript" src="table.js"> </script> 
<script type="text/javascript"> 
//回调函数 可用参数:obj.lastIndex(上次选项索引) obj.index(当前选项索引) obj.arr(选项卡元素数组) 
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"; 
} 
//参数分别为:选项块ID 选中的样式 回调函数 默认选择项(0开始) 
table("sidebar", "active",back,0); 
</script> 
</html>

//回调函数 可用参数:obj.lastIndex(上次选项索引) obj.index(当前选项索引) obj.arr(选项卡元素数组) 
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"; 
} 
//参数分别为:选项块ID 选中的样式 回调函数 默认选择项(0开始) 
table("sidebar", "active",back,0);

table.js代码如下:
/** 
* @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;//当前索引 
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=""; 
//激活当前选项的样式 
this.arr[this.index].className=this.active; 
//执行回调函数 
this.callBack(table[this.id]); 
} 
}
Javascript 相关文章推荐
基于jquery的文本框与autocomplete结合使用(asp.net+json)
May 30 Javascript
javascript屏蔽右键代码
May 15 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
Aug 10 Javascript
学习JavaScript设计模式(封装)
Nov 26 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
Apr 29 Javascript
JS数组去掉重复数据只保留一条的实现代码
Aug 11 Javascript
微信小程序 教程之注册程序
Oct 17 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
Dec 13 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
Feb 21 Javascript
微信小程序select下拉框实现效果
May 15 Javascript
细说Vue组件的服务器端渲染的过程
May 30 Javascript
基于vue中的scoped坑点解说
Sep 04 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
May 08 #Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
May 07 #Javascript
javascript 通用简单的table选项卡实现
May 07 #Javascript
jQuery 创建Dom元素
May 07 #Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
May 06 #Javascript
jQuery Selector选择器小结
May 06 #Javascript
Jquery 动态添加按钮实现代码
May 06 #Javascript
You might like
PHP默认安装产生系统漏洞
2006/10/09 PHP
利用js调用后台php进行数据处理原码
2006/10/09 PHP
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
js 利用image对象实现图片的预加载提高访问速度
2013/03/29 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
详解vue-element Tree树形控件填坑路
2019/03/26 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
学前教育求职自荐信范文
2013/12/25 职场文书
石油大学毕业生自荐信
2014/01/28 职场文书
警校毕业生自我评价
2014/04/06 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
话题作文之关于呼唤
2019/11/29 职场文书