【发布时间】:2014-07-28 21:26:27
【问题描述】:
我有 5 个包含副本的 div。
我有一个返回和下一步按钮,用于显示每个 div。
<a href="" class="back-btn off">Back</a> | <a href="" class="next-btn">Next</a>
<div class="vote-result first">
this is example copy
</div>
<div class="vote-result">
this is some more copy
</div>
<div class="vote-result">
some more copy
</div>
<div class="vote-result">
this is the last div
</div>
// 隐藏除第一个之外的 div。
.vote-result { display: none; }
.vote-result.first { display: block; }
第一次单击下一个按钮链接时,我想删除关闭类,以将其显示为可点击,我可能最初也应该禁用该链接并重新启用它。
$(".back-btn").removeClass("off");
显示最后一个 div 后,我需要将 off 类添加到 next-btn 并禁用它。
我曾想过使用轮播 js 插件来实现这一点,但现在有点过头了。
我知道一种方法可以做到这一点,但它会涉及根据单击的下一步或返回按钮为链接分配子类,因此它会知道接下来要显示的 div,以及删除或添加关闭类到链接。
我希望找到一种解决方案,让我可以在不修改代码的情况下添加更多的 div 来显示。任何帮助表示赞赏,谢谢。
【问题讨论】:
-
我主张我对 Ashish 的回答,因为我使用 JavaScript 变量而不是 DOM 结构来跟踪页面的状态。当您开始编写越来越高级的 JavaScript 时,将界面状态(哪个元素处于活动状态)与界面的 DOM 结构(元素如何呈现)隔离的能力变得越来越重要,因为 DOM 结构很可能会频繁更改(或者在您忘记 DOM 如何表示数据时需要在很久以后进行更改)。我的答案仍然依赖于 DOM,但更加孤立。
标签: javascript jquery html css