我正在用传呼机做一个小旋转木马.旋转木马显示6乘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;
});
Run Code Online (Sandbox Code Playgroud)
并且它失败了,因为-6%36是-6而不是30.我可以用if来处理它,(index < 0) ...但我更喜欢具有最好捕获包装行为的模数的条件.
我怎样才能将其包裹起来(见第2行)?
一个可能的解决方案是这个答案:
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);
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2690 次 |
| 最近记录: |