【发布时间】:2013-01-16 05:39:15
【问题描述】:
我正在使用页面中的 3 个按钮和 3 个部分。这是精简的代码。
加载页面时: FilterBtn 显示, 结果Btn被隐藏, 显示详细信息。 过滤器 div 被隐藏, 结果 div 显示, 详细信息 div 已隐藏。
如果用户点击 detailsBtn: filterBtn 被隐藏, 结果显示, ResultsSection div(包括结果 div 和过滤器 div)被隐藏, 显示细节 div。
如果用户点击 resultsBtn: 显示了 filterBtn, resultsBtn 被隐藏, 结果 div 显示, 过滤器 div 被隐藏, 详细信息 div 已隐藏。
如果用户点击filterBtn: filterBtn 被隐藏, 结果显示, 结果 div 被隐藏, 过滤器 div 显示, 详细信息 div 已隐藏。
目前这不是我想要的方式。当我单击一个按钮时,无论我如何在脚本中排列它们,两个 div 都将被隐藏。有人可以帮我编写脚本逻辑来完成这项工作吗?
这里是 HTML:
<div id="wrap">
<div class="row">
<div id="filterBtn"> <a href="#" class="button">Filters Button</a>
</div>
<div id="resultsBtn"> <a href="#" class=" button">Results Button</a>
</div>
</div>
<div id="resultsSection" class="row" style="display:block;">
<div id="filters">Filters Section</div>
<div id="results">Results Section
<div class="hide-for-small detailsBtn"> <a href="#" class=" button">Details Button</a>
</div>
</div>
<!-- Details -->
<div id="detailSection" class="row details" style="padding-top:0px" ;>
<div class="row">
<h3><small>Details Section</small></h3>
</div>
</div>
和脚本:
$("#resultsBtn").click(function () {
$("#detailSection").show("slow");
$("#resultsSection").toggle("slow");
$("#resultsBtn").hide("fast");
});
$(".detailsBtn").click(function () {
$("#detailSection").show("slow");
$("#resultsSection").hide("slow");
$("#resultsBtn").show("fast");
$("#filtersBtn").hide("fast");
});
$("#filterBtn").click(function () {
$("#resultsBtn").show("fast");
$("#filterBtn").hide("fast");
$("#filters").show("slow");
$("#resultsSection").hide("slow");
});
【问题讨论】:
-
我认为你的html坏了
-
您正试图控制六个元素。为什么在每个点击处理程序中只处理其中一些?尝试解决所有六个问题,或者至少包含一条评论,说明为什么不需要解决特定元素。