这是今天收到反馈的问题,原本我为模板的目录页制作的比较复杂的折叠弹出样式,在设置章节及分卷排序的时候,出现了乱码的情况。一开始我认为是小问题,就随手修改一下,结果越写越复杂,越写越觉得脑子不够用。足足想了两个多小时,最终才完善整个循环体系。所以我认为这是个值得记录的问题,以后肯定还会遇到。
使用的程序为杰奇2.3。
完整需要做到的循环代码如下:
<div class="cell-tit">
<div>第一卷</div>
<a href="javascript:;" class="toggle">- 收起</a>
</div>
<div class="cell-items">
<ul>
<li><p><a href="http://127.0.0.2/html/75/23830.html">第一章:废材</a></p></li>
<li><p><a href="http://127.0.0.2/html/75/23830.html">第一章:废材</a></p></li>
<li><p><a href="http://127.0.0.2/html/75/23830.html">第一章:废材</a></p></li>
</ul>
</div>
<div class="cell-tit">
<div>第二卷</div>
<a href="javascript:;" class="toggle">- 收起</a>
</div>
<div class="cell-items">
<ul>
<li><p><a href="http://127.0.0.2/html/75/23830.html">第一章:废材</a></p></li>
<li><p><a href="http://127.0.0.2/html/75/23830.html">第一章:废材</a></p></li>
<li><p><a href="http://127.0.0.2/html/75/23830.html">第一章:废材</a></p></li>
</ul>
</div>
其中分卷名代码如下:
<div class="cell-tit">
<div>第一卷</div>
<a href="javascript:;" class="toggle">- 收起</a>
</div>
章节名称循环如下:
<li><p><a href="http://127.0.0.2/html/75/23830.html">第一章:废材</a></p></li>
<li><p><a href="http://127.0.0.2/html/75/23830.html">第一章:废材</a></p></li>
<li><p><a href="http://127.0.0.2/html/75/23830.html">第一章:废材</a></p></li>
直接一看真的很简单,但是实际情况是,这里面的元素一个都不能缺失,如果缺少分卷区块,章节就乱码,如果缺少包含章节的div元素和ul元素,那么就不能正确的折叠或者直接出现错位。而且根据杰奇的本身特质,一些章节可以没有分卷,分卷也可以没有章节,所以在很多种情况下,仍然需要保证完整的循环元素不会缺失。所以这里我足足研究了两个多小时,最终才实现了一个接近完美的效果。
代码如下:
{?section name=i loop=$chapterrows?}
{?if $chapterrows[i].chaptertype == 0&$i['order']==1?} //如果位于第一个的元素不是分卷,那么默认设置正文为分卷名称排列第一。
<div class="cell-tit">
<div>正文</div>
<a href="javascript:;" class="toggle">- 收起</a>
</div>
<div class="cell-items">
<ul>
{?/if?}
{?if $chapterrows[i].chaptertype > 0&$i['order'] ==1?} //如果位于第一个的元素是分卷,那么以如下代码显示
<div class="cell-tit">
<div>{?$chapterrows[i].chaptername?}</div>
<a href="javascript:;" class="toggle">- 收起</a>
</div>
<div class="cell-items">
<ul>
{?/if?}
{?if $chapterrows[i].chaptertype > 0&$i['order'] > 1?} //如果非排列第一的元素为分卷,则以如下代码显示
</ul>
</div>
<div class="cell-tit">
<div>{?$chapterrows[i].chaptername?}</div>
<a href="javascript:;" class="toggle">- 收起</a>
</div>
<div class="cell-items">
<ul>
{?else?}
{?if $chapterrows[i].chaptertype > 0&$i['order']==1?} //在章节名称循环中,如果此章节是分卷,且排列第一则不显示。
{?else?}
<li><p>{?if $chapterrows[i].isvip > 0?}<span>VIP</span>{?/if?} //对vip章节添加vip标识
<a href="{?$chapterrows[i].url_chapter?}">{?$chapterrows[i].chaptername?}</a>
</p></li>
{?/if?}
{?/if?}
{?/section?}
</ul> //对循环末尾的元素补充缺失的标签
</div>
以上就是经过反反复复修改优化得到的基本完美的标签循环调用,现在小说网站的调用花样真是越来越多的,作为时不时仿站的我来说真心有点微微伤不起。
最后实现的效果图如下:
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.ruletree.club/archives/551/