这是一个可能的解决方案。
假设我们有这样的 HTML:
<html>
<head>
<link rel="stylesheet" type="text/css" href="mystyles.css" />
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" src="myscript.js"></script>
</head>
<body>
<input type=button id=prevBtn value="Prev" />
<input type=button id=nextBtn value="Next" />
<div id=sentences>
<p>Sentence 1</p>
<p>Sentence 2</p>
<p>Sentence 3</p>
<p>Sentence 4</p>
<p>Sentence 5</p>
</div>
</body>
</html>
还有隐藏所有句子的 CSS,除非它们有一个“当前”类(mystyles.css):
#sentences * {
display: none;
}
#sentences .current {
display: inline;
}
然后这段代码会做你想做的事(myscript.js):
jQuery(function($) {
$('#sentences *').eq(0).addClass('current'); // start by showing the first sentence
$('#nextBtn, #prevBtn').click(function() {
var currItem = $('#sentences .current');
var newItem = ($(this).attr('id') == 'nextBtn') ? currItem.next() : currItem.prev();
if (newItem.size() > 0) {
currItem.removeClass('current');
newItem.addClass('current');
}
});
});
基本上,我们首先将current
类赋予列表中的第一项。
然后我们有一个点击处理程序,它可以找到当前项目,并根据按下的按钮移动next()
或移动。prev()
如果这导致了一个有效的项目(我们不在列表的开头/结尾),那么我们current
从当前项目中删除该类,并将其添加到我们找到的新项目中。
这个解决方案的小提琴在这里:http: //jsfiddle.net/39CYu/