使用 .slice 分页选择太多项目
paginating using .slice selecting too many items
我想创建一个自动寻呼机,我可以使用 url 中的参数进行配置。如果我对 perTime 变量进行硬编码,它就可以工作。 当我使用 URL 中的参数时,页面开始表现得很奇怪。
你可以看到这里发生了什么:
http://risevision.syntra-limburg.be/ClassSchedule.aspx?Campus=genk&no_of_items=3&width=300&height=300
我想每页显示 3 个项目。这适用于前 2 页。 在第三页,它每页显示了更多的项目。
有人知道发生了什么事吗?我该如何解决这个问题?
$.urlParam = function (name) {
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (results == null) {
return null;
}
else {
return results[1] || 0;
}
}
$(document).ready(function () {
$(".placeholder").width($.urlParam('width')).height($.urlParam('height'))
var perTime = $.urlParam('no_of_items');
var $divSlide = $('.item');
var currentCnt = 0;
$divSlide.hide().slice(currentCnt, currentCnt + perTime).show();
var panelCnt = $divSlide.length;
setInterval(function () {
$divSlide.slice((currentCnt % panelCnt), (currentCnt % panelCnt) + perTime).fadeOut("1600", function () {
$divSlide.eq((currentCnt + perTime) % panelCnt).fadeIn("1000");
currentCnt++;
console.log(perTime);
});
}, 3000);
});
只是猜测,我会尝试解析 $.urlParam('no_of_items');
:
var perTime = parseInt($.urlParam('no_of_items'));
因为 perTime 在您当前的实现中是一个字符串。我不确定 slice
有多喜欢...
我想创建一个自动寻呼机,我可以使用 url 中的参数进行配置。如果我对 perTime 变量进行硬编码,它就可以工作。 当我使用 URL 中的参数时,页面开始表现得很奇怪。
你可以看到这里发生了什么: http://risevision.syntra-limburg.be/ClassSchedule.aspx?Campus=genk&no_of_items=3&width=300&height=300
我想每页显示 3 个项目。这适用于前 2 页。 在第三页,它每页显示了更多的项目。
有人知道发生了什么事吗?我该如何解决这个问题?
$.urlParam = function (name) {
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (results == null) {
return null;
}
else {
return results[1] || 0;
}
}
$(document).ready(function () {
$(".placeholder").width($.urlParam('width')).height($.urlParam('height'))
var perTime = $.urlParam('no_of_items');
var $divSlide = $('.item');
var currentCnt = 0;
$divSlide.hide().slice(currentCnt, currentCnt + perTime).show();
var panelCnt = $divSlide.length;
setInterval(function () {
$divSlide.slice((currentCnt % panelCnt), (currentCnt % panelCnt) + perTime).fadeOut("1600", function () {
$divSlide.eq((currentCnt + perTime) % panelCnt).fadeIn("1000");
currentCnt++;
console.log(perTime);
});
}, 3000);
});
只是猜测,我会尝试解析 $.urlParam('no_of_items');
:
var perTime = parseInt($.urlParam('no_of_items'));
因为 perTime 在您当前的实现中是一个字符串。我不确定 slice
有多喜欢...