单击div时,JavaScript变量未正确相加
我正在为一个彩弹队制作一个网站。主页上有一小部分显示下一事件的日期 这是相关的HTML代码:单击div时,JavaScript变量未正确相加,javascript,jquery,if-statement,Javascript,Jquery,If Statement,我正在为一个彩弹队制作一个网站。主页上有一小部分显示下一事件的日期 这是相关的HTML代码: 原链图诺 MIPL-E4 20 juillet 2013 米拉贝尔,QC 我使用javascript制作了一个小函数,当用户单击左箭头或右箭头时,可以更改不同标题的内容。这里的目标是让用户看到即将到来的事件,并可以回到以前的日期 当我单击右箭头一次时,日期会更改,但如果我再次单击右箭头,日期将保持在第二个日期。但是,如果我单击左箭头,它将返回到第一个日期。我可以在第一个和第二个日期之间来回,但从第二
原链图诺
MIPL-E4
20 juillet 2013
米拉贝尔,QC
我使用javascript制作了一个小函数,当用户单击左箭头或右箭头时,可以更改不同标题的内容。这里的目标是让用户看到即将到来的事件,并可以回到以前的日期
当我单击右箭头一次时,日期会更改,但如果我再次单击右箭头,日期将保持在第二个日期。但是,如果我单击左箭头,它将返回到第一个日期。我可以在第一个和第二个日期之间来回,但从第二个日期到第三个日期时,它似乎不会注册附加值
我知道一定有更好的方法,但我迷路了,我还需要添加其他日期
以下是JS:
var numero_date=0;
函数clickDate(){
if($(this.hasClass(“gauche”)){
数字日期--;
如果(数字日期)问题在于您使用赋值运算符而不是比较运算符=
更改行,如下所示
else if (numero_date = 2) {
到
每当它穿过numero_date=1
(用于比较numero_date==1
)时,该变量的值被设置为1,并且从那里开始不会改变。在if条件下,它总是将其设置为1,并且从不向前移动
我不清楚您的要求,但您可以使用诸如、、等数组函数来管理下一个/上一个按钮和数据循环,而不是检查值、递增/递减计数器:
var arrEvents = []; //Set up the array of events
arrEvents.push({
'event': 'MIPL E4',
'date': '20 juillet 2013',
'venue': 'Mirabel, QC'
},{
'event': 'PSP',
'date': '16-18 août 2013',
'venue': 'Riverside, CA'
},{
'event': 'MIPL Finales',
'date': '31 août 2013',
'venue': 'Mirabel, QC'
});
function clickDate() {
var obj;
if ($(this).is(".gauche")) {
obj = arrQuestions.shift(); //get the element from top
arrQuestions.push(obj); //push it to the end
obj = arrQuestions[0];
} else {
obj = arrQuestions.pop(); //get the element from end
arrQuestions.unshift(obj); //ush it to the top
obj = arrQuestions[arrQuestions.length-1];
}
console.log(JSON.stringify(arrQuestions));
document.getElementById("h2date").innerHTML = obj.event;
document.getElementById("h3date").innerHTML = obj.date;
document.getElementById("h4date").innerHTML = obj.venue;
}
@MathieuDésilets如果您认为这解决了您的问题,请记住标记为答案。@MathieuDésilets刚刚更新了第二个示例的小提琴和代码。
else if (numero_date = 2) {
else if (numero_date == 2) {
var arrEvents = []; //Set up the array of events
arrEvents.push({
'event': 'MIPL E4',
'date': '20 juillet 2013',
'venue': 'Mirabel, QC'
},{
'event': 'PSP',
'date': '16-18 août 2013',
'venue': 'Riverside, CA'
},{
'event': 'MIPL Finales',
'date': '31 août 2013',
'venue': 'Mirabel, QC'
});
function clickDate() {
var obj;
if ($(this).is(".gauche")) {
obj = arrQuestions.shift(); //get the element from top
arrQuestions.push(obj); //push it to the end
obj = arrQuestions[0];
} else {
obj = arrQuestions.pop(); //get the element from end
arrQuestions.unshift(obj); //ush it to the top
obj = arrQuestions[arrQuestions.length-1];
}
console.log(JSON.stringify(arrQuestions));
document.getElementById("h2date").innerHTML = obj.event;
document.getElementById("h3date").innerHTML = obj.date;
document.getElementById("h4date").innerHTML = obj.venue;
}