动态生存tab,并且在一个页面可以有多个选项卡集合
时间:2010-09-28 来源:周行天下
需求,页面的由模块组成,在后台发布。因此,可以发布多个模块,并且每个模块都含有tab,并且tab的个数不固定。
多的不说了,先上代码,然后具体解释
<div id="tabContainer" runat="server"> <div id="articlehead"> <div style="text-align: right;" id='tabsp<%= random %>'> <h1> <% if (EnableShowTitle) { %><%= ModuleName%><% } %></h1> <asp:Repeater ID="rptTabs" runat="server" EnableViewState="False"> <ItemTemplate> <span id='tabs<%# Container.ItemIndex + 1%><%# random %>'><a target="_blank" href="../lanmu/<%=ModAlias_ID%>/<%# Eval("TabCateID")%>.html"> <%# Eval("TabName")%></a></span></ItemTemplate> </asp:Repeater> </div> </div> <div id="articleBody"> <div id='tabsbody<%= random %>'> <asp:Repeater ID="rptBody" runat="server" EnableViewState="false"> <ItemTemplate> <div class='tabs<%# Container.ItemIndex + 1%><%# random %>'> <asp:Repeater ID="rptArticle" runat="server"> <HeaderTemplate> <table border="0" cellpadding="0" cellspacing="0" width="100%"> </HeaderTemplate> <ItemTemplate> <tr> <td align="left"> <a id="cate" target="_blank" runat="server"></a><a id="article" target="_blank" runat="server"> <span id="articleName" runat="server"></span></a> </td> <td align="right"> <samp id="articleSource" runat="server"> </samp> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </div> </ItemTemplate> </asp:Repeater> </div> </div> </div>
上面标红的地方就是关键,在后台生成一个随机数random,在前台,把这个随机数和id进行结合,这样就可以在一个页面可以有多个选项卡。
样式
.articleShow { margin: 5px 5px 0 5px; border: 1px solid #e1e1e1; overflow: hidden; } .articleShow #articlehead{ padding-right: 0px; border-bottom: 1px solid #CCCCCC; padding-left: 0px; background: url(../images/main_font_bg.jpg.ashx) repeat-x top; text-align:right; padding: 10px 5px 3px; text-indent: 10px; } .articleShow #articlehead h1{ float:left; font-family: 微软雅黑; font-size:14px;float:left; margin:0 0; padding:0 0; } .articleShow #articlehead span{ background-color: #EFEFEF; border: 1px solid #CCCCCC; cursor: pointer; margin: 0 0; padding: 4px 15px; padding: 5px\9 15px; *padding: 4px 15px; _padding: 3px 15px; font-size:13px; } .articleShow #articlehead span.current{ background-color: #FAFAFA; border-bottom-color: #fafafa; } .articleShow #articlehead a{ float: none; line- color: #000; text-decoration: none; } .articleShow #articleBody{ padding : 5px 7px 5px 7px; /*clear: left; min-*/ } .articleShow #articleBody a{ font-weight: normal; color: #000; text-decoration: none; font-size: 12px; line- padding: 0 0px; /* word-wrap:break-word;word-break:break-all*/ float:left; } .articleShow #articleBody a:hover { color: #09c; }
.articleShow为这个模块的样式。
<script type="text/javascript"> $(document).ready(function() { $("#tabsp<%= random %> span:first").addClass("current"); //为第一个SPAN添加当前效果样式 $("#tabsbody<%= random %> div:not(:first)").hide(); //隐藏其它的UL $("#tabsp<%= random %> span").mouseover(function() { $("#tabsp<%= random %> span").removeClass("current"); //去掉所有SPAN的样式 $(this).addClass("current"); $("#tabsbody<%= random %> div").hide(); $("." + $(this).attr("id")).show(); }); }); </script>
引用jquery先,然后在dom加载完后,就可以了。
如果有朋友愿意实验,完全可以自己把代码抠下来。
差不多可以对付所有的情况了。
相关阅读 更多 +