我正在用寻呼机做一个小旋转木马。旋转木马显示元素 6 x 6,我有 36 个元素要显示。我有一个下一个和上一个按钮。显示的第一个元素是 [0, 6]。如果我按下上一个按钮并且没有上一个元素(例如我在第一页),它应该环绕并走到最后。这同样适用于最后一个元素和下一个按钮。
我的代码是这样的:
$('#img_prev').click(function (e) {
# change this line so it wraps around
imgIndex = (imgIndex - 6) % 36;
alert(imgIndex)
refreshImages(imgIndex);
e.preventDefault();
return false;
});
$('#img_next').click(function (e) {
imgIndex = (imgIndex + 6) % 36;
refreshImages(imgIndex);
e.preventDefault();
return false;
});
它悲惨地失败了,因为 -6 % 36 是 -6 而不是 30。我可以用 if (index < 0) ...
处理它但我更喜欢模数最能捕捉包装行为的条件。
我怎样才能让它环绕(见第二行)?
最佳答案
一个可能的解决方案是使用 this answer :
function mod(x, m) {
return (x%m + m)%m;
}
$('#img_prev').click(function (e) {
# this line has been changed, now it wraps around
imgIndex = mod(imgIndex - 6, 36);
...
关于javascript - 将索引保持在范围内并环绕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16964225/