今天搞了一个用js来实现tab之间的转换,很简单的问题,但发现了一个问题。
用JS来改变css样式时,改变<a> </a>的样式会出问题:
<a href="" id = "href_id"></a>
function setSytle(){ document.getElementById("href_id").className = "current"; }
通过这样的方式来改变<a的样式就不能达到想要的效果,到网上搜了一下,实现tab之间的转换都是通过改变div或者<li之类的style来改变效果,于是我每一个tab用span来包起来,通过js来改变span的样式,从而达到了改变转换tab时,高亮显示的效果。
不知道其他人有没有这样的经历,下面是我的方法
function showtab(id,index,count){ for(var i = 1; i<= count;i++){ if(i == index){ this.getObject("tab"+id+index).className = "style_yellow12B";//设置span颜色 this.getObject("tab_"+id+"_"+index).style.display = "block";//显示对应的表格 }else{ this.getObject("tab"+id+i).className = "style_withe12"; this.getObject("tab_"+id+"_"+i).style.display = "none"; } } } function getObject(objectId) { if(document.getElementById && document.getElementById(objectId)) { return document.getElementById(objectId); } else if (document.all && document.all(objectId)) { return document.all(objectId); } else if (document.layers && document.layers[objectId]) { return document.layers[objectId]; } else { return false; } }
使用方法:
1.tab js使用说明:
· 方法:
showtag(id,index,loop);
id 作为table的标识,页面唯一.
index 当前选择是第几个table.
loop 当前循环有几个tab页.
· 使用方法:
table命名为 tab_id_index
页面默认不显示的table style="display: none;"
触发事件使用<span>
span ID 为 tab+id+index
如:<span id="tab11" class="style_yellow12B" onmousemove="showtab(1,1,2)">省内动态</span>
页面默认的<span> class = style_yellow12B 其它 style_withe12(选种为黄色,未选种为折白色).