使用 jQuery 在列表中显示/隐藏 LI 元素时遇到了一些问题,这是我目前所拥有的:
$(document).ready(function(){
$("ul.news").find("li.hidden").hide();
$("ul.news a.show").click(function() {
$("ul.news").find("li.hidden").toggle();
$("ul.news").find("li.hide").show();
});
$("ul.news a.hide").click(function() {
$("ul.news").find("li.hidden").toggle();
$("ul.news").find("li.show").show();
});
$("ul.articles").find("li.hidden").hide();
$("ul.articles a.show").click(function() {
$("ul.articles").find("li.hidden").toggle();
$("ul.articles").find("li.hide").show();
});
$("ul.articles a.hide").click(function() {
$("ul.articles").find("li.hidden").toggle();
$("ul.articles").find("li.show").show();
});
});
和 HTML:
<h3 class="gray-default">Press Releases</h3>
<ul class="news-landing news span8">
<li><a href="" target="_blank">xxx</a></li>
<li><a href="" target="_blank">xxx</a></li>
<li><a href="" target="_blank">xxx</a></li>
<li class="hidden"><a href="" target="_blank">xxx</a></li>
<li class="hidden"><a href="" target="_blank">xxx</a></li>
<li class="hidden"><a href="" target="_blank">xxx</a></li>
<li class="hidden"><a href="" target="_blank">xxx</a></li>
<li class="show"> <a class="view-more show">To view more >></a> </li>
<li class="hide"> <a class="view-more hide">To view less >></a> </li>
</ul>
<h3 class="gray-default">Articles & Reports</h3>
<ul class="news-landing articles span8">
<li><a href="" target="_blank">xxx</a></li>
<li><a href="" target="_blank">xxx</a></li>
<li><a href="" target="_blank">xxx</a></li>
<li class="hidden"><a href="" target="_blank">xxx</a></li>
<li class="hidden"><a href="" target="_blank">xxx</a></li>
<li class="hidden"><a href="" target="_blank">xxx</a></li>
<li class="hidden"><a href="" target="_blank">xxx</a></li>
<li class="show"> <a class="view-more show">To view more >></a> </li>
<li class="hide"> <a class="view-more hide">To view less >></a> </li>
</ul>
但是发生了什么:
在初始页面加载一切看起来都很好,每个列表中只有 3 个项目和正确的“查看更多”链接
单击新闻下的查看更多和列表正确展开,但更多和更少的链接都是可见的,单击任何一个链接都会折叠列表,但两个链接都是可见的。
点击文章和列表展开下的查看更多,但只有查看更多链接可见,再次单击它会折叠列表,并且更多链接仍然可见。less 链接永远不会出现。
我在这里做错了什么?