Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这是最好的表达条件吗?_Javascript - Fatal编程技术网

Javascript 这是最好的表达条件吗?

Javascript 这是最好的表达条件吗?,javascript,Javascript,我正在努力从函数中获取最终值,我有两个可单击的按钮,一个是“上一个”,另一个是“下一个”。如果同时单击这两个按钮,我将获得幻灯片放映计数。为了得到这个结果,我使用以下代码。它工作得更好,但在我同意之前,可能会有一个单线解决方案 任何人都能纠正此代码以最小化错误吗 var tdLength = 7; var num = 0; $('a.buttons').click(function(){ num = ($(this).attr('id') == "next-arr

我正在努力从函数中获取最终值,我有两个可单击的按钮,一个是“上一个”,另一个是“下一个”。如果同时单击这两个按钮,我将获得幻灯片放映计数。为了得到这个结果,我使用以下代码。它工作得更好,但在我同意之前,可能会有一个单线解决方案

任何人都能纠正此代码以最小化错误吗

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-tdLength=7;
var num=0;
$('a.buttons')。单击(函数(){
num=($(this.attr('id')=“下一个箭头”)?num+=1:num-=1;
num=(num>tdLength)?1:num;
num=(num<1)?tdLength:num;
警报(num);
})

提前感谢。

一个想法是您可以替换此

num = (num > tdLength) ? 1 : num;
num = (num < 1) ? tdLength : num;
这里的不同之处在于,代码使用基于1的索引,而%的结果是基于0的索引

您还可以缩短第一行:

num = ($(this).attr('id') == "next-arrow") ? num +=1 : num -=1;
由于您处于控制状态,请将
数据跳过
(或类似)属性添加到您的链接(例如
),这将允许您执行以下操作:

num += parseInt($(this).data('skip'));
因此,所有这些加起来:

var tdLength = 7;
var num = 0; // "first" is preselected
$('a.buttons').click(function(){
    num = (num + parseInt($(this).data('skip')) + tdLength) % tdLength;
    alert(num);
})

一个想法是你可以替换这个

num = (num > tdLength) ? 1 : num;
num = (num < 1) ? tdLength : num;
这里的不同之处在于,代码使用基于1的索引,而%的结果是基于0的索引

您还可以缩短第一行:

num = ($(this).attr('id') == "next-arrow") ? num +=1 : num -=1;
由于您处于控制状态,请将
数据跳过
(或类似)属性添加到您的链接(例如
),这将允许您执行以下操作:

num += parseInt($(this).data('skip'));
因此,所有这些加起来:

var tdLength = 7;
var num = 0; // "first" is preselected
$('a.buttons').click(function(){
    num = (num + parseInt($(this).data('skip')) + tdLength) % tdLength;
    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
对于合理的
金额
值,始终在
[1..tdLength]
中生成一个值。由@Jon answer输入。

我的镜头:

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

对于合理的
金额
值,始终在
[1..tdLength]
中生成一个值。输入@Jon answer.

num+=$(此).data('skip')要进行字符串连接
num+=$(this.data('skip')将执行字符串连接我通过将值增减
1
来获取值。如果我需要
2
3
的值,如何处理?例:2,4,6,8或3,6,9,类似于这样?我通过将值增减
1
得到值。如果我需要
2
3
的值,如何处理?例:2,4,6,8或3,6,9之类的?