全面解析标签页的切换方式
标签页的切换方式如下所示:
1、控制tab的显示与隐藏
2、tab不切换,数据加载
控制tab的显示与隐藏
前端脚本:
1、jquery实现:
$(function(){ $(".sdkj-tabsli").click(function(){ $(this).addClass("on").siblings().removeClass("on"); varindex=$(".sdkj-tabsli").index(this); $(".cont-tabs>div").eq(index).show().siblings().hide(); }); });
引入jquery文件,代码简洁
jquery文件较大,浏览器不兼容
2、js实现
functionselectTab(showContent,selfObj){ vartab=document.getElementById("sdkj-tabs").getElementsByTagName("li"); vartablength=tab.length; for(i=0;i<tablength;i++){ tab[i].className=""; } selfObj.className="on"; //标签页切换 for(i=0;j=document.getElementById("cont-tab"+i);i++){ j.style.display="none"; } document.getElementById(showContent).style.display="block"; }
无需引入jquery文件
代码量大,需每个标签添加函数及ID
3、插件实现
vartabs=function(){ functiontag(name,elem){ return(elem||document).getElementsByTagName(name); } //获得相应ID的元素 functionid(name){ returndocument.getElementById(name); } functionfirst(elem){ elem=elem.firstChild; returnelem&&elem.nodeType==1?elem:next(elem); } functionnext(elem){ elem=elem.nextSibling; while(elem){ if(elem.nodeType==1){ returnelem; } else{ elem=elem.nextSibling; } } } functionchild(elem){ vararrays=newArray(); vararray_int=0; varelem_child=first(elem); for(array_int=0;elem_child;array_int++){ //console.log("elem:"+elem); arrays[array_int]=elem_child; elem_child=next(elem_child); } returnarrays; } return{ set:function(elemId,tabId){ varelem=tag("li",id(elemId)); vartabs=child(id(tabId)); varlistNum=elem.length; vartabNum=tabs.length; console.log(tabs); for(vari=0;i<listNum;i++){ elem[i].onclick=(function(i){ returnfunction(){ for(varj=0;j<3;j++){ if(i==j){ tabs[j].style.display="block"; elem[j].className="on"; } else{ tabs[j].style.display="none"; elem[j].className=""; } } } })(i) } } } }(); tabs.set("sdkj-tabs","cont-tabs");//执行
无需引入jquery文件,只需添加父元素ID
以上所述是小编给大家介绍的全面解析标签页的切换方式的全部叙述,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!