JavaScript实现tab标签-解决循环bug问题
2016-10-28 19:52
393 查看
用JavaScript实现tab标签当我们用循环实现每个tab标签点击效果的时候会发现循环bug,每个i输出都是循环的最终结果而不是每一个循环中的数值
解决方法有两个
第一种方法是给DOM节点添加_index属性,属性值等于索引i
简单代码如下:
一个是闭包:
代码如下:
内容整理来自于《编写高质量代码-web前端开发修炼之道》
这本书对于提高自己日常的前端代码编写规范和质量挺有帮助的,推荐
解决方法有两个
第一种方法是给DOM节点添加_index属性,属性值等于索引i
简单代码如下:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <div class="tab"> <ul class="tab-menuWrapper" id="tab-menuWrapper"> <li>tab1</li> <li>tab2</li> <li>tab3</li> <li>tab4</li> </ul> <div class="tab-contentWrapper" id="tab-contentWrapper"> <div>content1</div> <div style="display:none;">content2</div> <div style="display:none;">content3</div> <div style="display:none;">content4</div> </div> </div> <script> var tabMenu=document.getElementById("tab-menuWrapper").getElementsByTagName("li"); var tabContent=document.getElementById("tab-contentWrapper").getElementsByTagName("div"); for(var i=0;i<tabMenu.length;i++){ tabMenu[i]._index=i; tabMenu[i].onclick= function () { for(var j=0;j<tabContent.length;j++){ tabContent[j].style.display="none"; } tabContent[this._index].style.display="block"; } } </script> </body> </html>
一个是闭包:
代码如下:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <div class="tab"> <ul class="tab-menuWrapper" id="tab-menuWrapper"> <li>tab1</li> <li>tab2</li> <li>tab3</li> <li>tab4</li> </ul> <div class="tab-contentWrapper" id="tab-contentWrapper"> <div>content1</div> <div style="display:none;">content2</div> <div style="display:none;">content3</div> <div style="display:none;">content4</div> </div> </div> <script> var tabMenu=document.getElementById("tab-menuWrapper").getElementsByTagName("li"); var tabContent=document.getElementById("tab-contentWrapper").getElementsByTagName("div"); for(var i=0;i<tabMenu.length;i++){ (function (i) { tabMenu[i].onclick= function () { for(var j=0;j<tabContent.length;j++){ tabContent[j].style.display="none"; } tabContent[i].style.display="block"; } })(i); } </script> </body> </html>
内容整理来自于《编写高质量代码-web前端开发修炼之道》
这本书对于提高自己日常的前端代码编写规范和质量挺有帮助的,推荐
相关文章推荐
- JavaScript的闭包问题(闭包解决引用循环变量的问题)
- js(JavaScript)实现TAB标签切换效果的简单实例
- 基于JavaScript实现TAB标签效果
- 实现底部导航栏及切换tab重新加载的问题解决
- javascript实现不同颜色Tab标签切换效果
- javascript实现tab标签组件3
- JavaScript_解决safari浏览器window.open无法实现的问题
- JavaScript提高:003:easy UI实现tab页面自适应问题
- 基于JavaScript实现TAB标签效果
- java实现动态代理代码实例(死循环溢出的问题的解决)
- chrome浏览器中解决embed标签 loop="true" 背景音乐无法循环的问题。
- 循环列表的Java实现,解决约瑟夫环问题
- JavaScript提高:003:easy UI实现tab页面自适应问题
- 由于angular ng-repeat只能写在标签上 循环对象的对象时遇到的问题及解决方法
- ASP.NET自定义控件的BUG在ASPX页面中注册控件后不能打出标签的问题(本人已解决)
- html标签overflow属性和javascript实现div标签滚动问题
- javascript实现tab标签组件1
- javascript实现tab标签组件2
- 网页中tab标签切换分别用jquery和javascript源码实现
- VB.net版机房收费系统——VS报表制作及功能实现中的问题及解决办法(好学的代价=Bug)