我正在尝试使用Javascript创建一个简单的分页(是的,我知道jquery插件,但我真的想弄清楚我如何从头开始)。无论如何,我已经非常接近完成分页,但我无法弄清楚如何使后退按钮工作。另外,我如何添加页码以便我可以拥有如下内容:下一个... 1 2 .. 9 10 ...最后?目前我只有下一个和最后一个按钮。这是我的代码目前的样子。我知道它仍然需要修复,但我会稍后再考虑。
<?php for ($i = 1; $i <= 50; $i++) { ?>
<div id="div<?php echo $i; ?>" style="display:none;">
<div><label>object<?php echo $i; ?></label><br/><br/></div>
</div>
<?php $j = $i;
}
?>
<div><input type="button" id="btn_next" value="NEXT" onclick="goNext()"/></div>
<div><input type="button" style="display:none;" id="btn_back" value="BACK" onclick="goBack()"/></div>
我认为我的html / php元素中没有任何东西需要更改,但我添加了更多细节。这是我目前的javascript:
<script type="text/javascript" language="javascript">
for (var i = 0; i <= 5; i++) {
if(document.getElementById('object'+i) != null) {
if (document.getElementById('object'+i) != null && typeof(document.getElementById('object'+i)) != undefined && document.getElementById('object'+i) != "") {
var x = document.getElementById('object'+i).style.display = 'block';
var count5 = +i;
}
}}
var nextArr = [1, 2, 3, 4, 5];
var prevArr = [1,2,3,4,5];
function goNext(){
var max = "<?php echo $j; ?>"
var num1 = i;
var num2 = num1 + 4;
var num3 = num1 - 1;
for (var next = nextArr.length; next <= num2; next++) {
document.getElementById('object'+next).style.display = 'block';
}
if(num2 == max){
document.getElementById('btn_next').style.display = 'none';
}
for (var newArr= 5; newArr <= num3; newArr++)
{
nextArr[newArr] = [newArr];
}
var quotient = num1 / 5;
if(quotient >= 1) {
for (var value = num3; value > 0; value--) {
document.getElementById('object'+value).style.display = 'none';
}
}
//increment i
i = num2 + 1;
//display back if array lenght is > 5
if(nextArr.length >= 5) {
document.getElementById('btn_back').style.display = 'block';
}}
function goBack() {
var num1 = i;
var num2 = num1 + 4;
var num3 = num1 - 1;
var num4 = num3 - 5;
i = num2+ 1;
for (var back = num4; back >= 5; back--)
{
prevArr[back] = [back];
}
var quotient = num1 / 5;
if (quotient >= 1) {
for(var prev = num4; prev >= 0 ; prev--)
{
document.getElementById('hiddendiv'+prev).style.display='block';
}
}}</script>
num1是接下来要显示的5个项目的第一个索引,num2是接下来的5个项目的最后一个索引,num3是当前显示项目的最后一个索引,num4是当前显示项目的第一个索引。后退按钮已经做了一些事情,但我只是无法将手指放在正确的想法上,以便在显示前面的div时隐藏元素。任何建议都会很棒。
答案 0 :(得分:0)
我没有提供直接的解决方案,但这是你可以做的工作,并且原谅我在回答这个问题而不关注你发布的代码。
<a href="#page1">1</a>
等JSON
。根据数据类型,您可以在回调中构建模板。此外,如果要使其高效并缓存先前显示的结果,您可以维护JSON以保存以前的搜索结果。添加一些逻辑来检查是否按下后退按钮只是弹出JSON中的数据并显示它。虽然,请记住,在某些情况下,这种方法会适得其反。