javascript - 这是最好的表达条件吗?

标签 javascript

我正在努力从函数中获取最终值,我有两个可单击的按钮,一个是上一个,另一个是下一个。单击两者,我将获取幻灯片放映计数。为了得到这个结果,我使用以下代码。它工作得更好,但直到我相信这一点,可能有一个单行解决方案......

任何人都可以更正此代码以最小化吗?

var tdLength = 7;
    var num = 0;
    $('a.buttons').click(function(){
        num = ($(this).attr('id') == "next-arrow") ? num +=1 : num -=1;
        num = ( num > tdLength) ? 1 : num;
        num = (num < 1) ? tdLength : num;
        alert(num);
    })

提前致谢..

最佳答案

我的镜头:

var num = 0;
function add(amount) {
    num = (num + tdLength - 1 + amount) % tdLength + 1
    alert(num);
}

$('#next-arrow').click(function(){add(1)});
$('#prev-arrow').click(function(){add(-1)});

恶人:

num = (num + tdLength - 1 + amount) % tdLength + 1

对于合理的amount值,始终产生[1..tdLength](含)内的值。受到@Jon 回答的启发。

关于javascript - 这是最好的表达条件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7807795/

相关文章:

javascript - 我什么时候应该合并我的 JS 和 CSS 文件?

javascript - javascript 如何以如此准确的方式打印 0.1?

javascript - Mongoose 传递类函数

javascript - 在 DOM 上使用 Javascript 定位 Div

javascript更改被调用函数的名称

javascript - 所选单选上的按键事件

javascript - 在 Javascript 中的 P 元素中添加字符串

c# - 授权集成到客户端-服务器应用程序(C#、JavaScript)

javascript - 添加同类事件是否会追加或覆盖之前添加的同名事件?

javascript - AngularJS:使用 URL 参数保持应用程序状态