AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JavaScript

JS基于面向对象实现的选项卡效果示例

51自学网 http://www.wanshiok.com
JS,面向对象,选项卡

本文实例讲述了JS基于面向对象实现的选项卡效果。分享给大家供大家参考,具体如下:

中间过渡环节:把面向过程的程序,改写成面向对象的形式

<html xmlns="http://www.w3.org/1999/xhtml"><head><style>#div1 input {background:#CCC;}#div1 .active {background:yellow;}#div1 div {width:200px; height:200px; background:#CCC; display:none;}</style><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script>window.onload=function (){  var oDiv=document.getElementById('div1');  var aBtn=oDiv.getElementsByTagName('input');  var aDiv=oDiv.getElementsByTagName('div');  var i=0;  for(i=0;i<aBtn.length;i++)  {    aBtn[i].index=i;    aBtn[i].onclick=function ()    {      for(i=0;i<aBtn.length;i++)      {        aBtn[i].className='';        aDiv[i].style.display='none';      }      this.className='active';      aDiv[this.index].style.display='block';    };  }};</script></head><body><div id="div1">  <input class="active" type="button" value="教育" />  <input type="button" value="财经" />  <input type="button" value="aaa" />  <div style="display:block;">1asdfasdfds</div>  <div>2xzcvxzcv</div>  <div>5332342345</div></div></body></html>

改写注意事项:

1.前提:所有代码必须包含在window.onload里面
2.去掉函数嵌套(window.onload里面嵌套的函数拎到window.onload外面去)
3.不能有函数嵌套,但可以有全局变量(比如onclick函数拎出去后,aBtn是window.onload函数里的私有变量,onclick函数不能用)

过程:

1.onload(初始化整个程序)→构造函数(初始化一个对象)
2.全局变量→属性
3.函数→方法

window.onload=function(){  var oTab=new TabSwitch("div1");}function TabSwitch(id){  var oDiv=document.getElementById(id);  this.aBtn=oDiv.getElementsByTagName('input');  this.aDiv=oDiv.getElementsByTagName('div');  var i=0;  var _this=this;     //this是new出来的对象,即oTab  for(i=0;i<this.aBtn.length;i++)  {    this.aBtn[i].index=i;    this.aBtn[i].onclick=function(){      _this.tab(this);  //通过参数的形式,将被点击的按钮传到下面去    };  }};TabSwitch.prototype.tab=function(oBtn){  for(i=0;i<this.aBtn.length;i++)  {    this.aBtn[i].className='';    this.aDiv[i].style.display='none';  }  oBtn.className='active';  //要被点击的按钮改变,而不是new出来的对象,所以这里不用this  this.aDiv[oBtn.index].style.display='block';}

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript切换特效与技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。


JS,面向对象,选项卡  
上一篇:jQuery常见的选择器及用法介绍  下一篇:解决Angular.Js与Django标签冲突的方案