请您查看this Demo并告诉我为什么#pre
和#nex
上的点击事件只会触发一次!
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var d = new Date();
var n = d.getMonth();
$("#month").html(months[n]);
$(".row").on('click' , '#pre', function(){
$("#month").html(months[n-1]);
});
$("#nex").on('click' , function(){
$("#month").html(months[n+1]);
});
我还尝试在#pre
上使用委托方法,这种方法再次无效
答案 0 :(得分:5)
您需要减少并递增n
的值才能使其正常工作。当你这样做时,你还需要确保你不在数组的范围之外,否则你将得到一个超出范围异常的索引。
$(".row").on('click' , '#pre', function(){
n = (n === 0) ? months.length - 1 : n - 1;
$("#month").html(months[n]);
});
$("#nex").on('click' , function(){
n = (n === months.length - 1) ? 0 : n + 1;
$("#month").html(months[n]);
});
答案 1 :(得分:0)
你没有改变n的价值,所以你从上个月开始总是这么做。 首先在onclick方法中获取#month的当前值。
答案 2 :(得分:0)
你的事件正在解雇 - 你每次开火时都只是设置相同的值。尝试在事件中添加n + = 1和n- = 1来更改值。
答案 3 :(得分:0)
我正在编辑你的代码,现在正在工作 你应该每次点击改变计数器值..
var months = [" January"," February"," March"," April"," May&#34 ;,"六月","七月","八月","九月","十月",&#34 ;十一月","十二月"]; var days = [" Mon"," Tue"," Wed"," Thu"," Fri",& #34;周六","太阳"]; var d = new Date(); var n = d.getMonth();
$("#month").html(months[n]);
$(".row").on('click' , '#pre', function(){
$("#month").html(months[n-1]);
n=n-1
});
$("#nex").on('click' , function(){
$("#month").html(months[n+1]);
n=n+1
});