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之类的?