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 相关文章推荐
可输入的下拉框
Jun 19 Javascript
onbeforeunload与onunload事件异同点总结
Jun 24 Javascript
IE、FF浏览器下修改标签透明度
Jan 28 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
Aug 12 Javascript
JS实现左右无缝轮播图代码
May 01 Javascript
jQuery 选择同时包含两个class的元素的实现方法
Jun 01 Javascript
Vue 实用分页paging实例代码
Apr 12 Javascript
PHP实现记录代码运行时间封装类实例教程
May 08 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
Jul 25 Javascript
微信小程序模版渲染详解
Jan 26 Javascript
vue-cli扩展多模块打包的示例代码
Apr 09 Javascript
基于JavaScript实现单例模式
Oct 30 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访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
jquery获得option的值和对option进行操作
2013/12/13 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
js实现分页功能
2017/05/24 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
js获取文件里面的所有文件名(实例)
2017/10/17 Javascript
node.js基础知识小结
2018/02/26 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
js实现详情页放大镜效果
2020/10/28 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
Python fileinput模块使用实例
2015/05/28 Python
python多线程扫描端口(线程池)
2019/09/04 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
中科方德软件测试面试题
2016/04/21 面试题
幼儿园小班评语
2014/04/18 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
房产公证书样本
2015/01/23 职场文书
兵马俑导游词
2015/02/02 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
民间借贷被告代理词
2015/05/23 职场文书
pandas中关于apply+lambda的应用
2022/02/28 Python