我有一组问题,想要在它们上面显示一个简单的进度计数器。 下面的代码工作正常,但我想知道是否有人可以建议重构,因为这是实现这一目标的更好方法。
var totalCount = $('#questions li').length,
count = 1;
$('.progress').html("Question " + count + " of " + totalCount);
// Increment by 1 on each click
$('.btn-next').click(function(){
count ++ ;
// remove current count
$('.progress').empty();
// drop in new count
$('.progress').html("Question " + count + " of " + totalCount);
});
// Decrease by 1 on each click
$('.btn-prev').click(function(){
count -- ;
// remove current count
$('.progress').empty();
// drop in new count
$('.progress').html("Question " + count + " of " + totalCount);
});
答案 0 :(得分:2)
你可以干掉那段代码。试试这个:
var totalCount = $('#questions li').length + 1, // add 1 as .length is 0 based
count = 1;
$('.btn-next, .btn-prev').click(function(){
count = $(this).hasClass('btn-next') ? count - 1 : count + 1;
$('.progress').html("Question " + count + " of " + totalCount)
});
请注意,在您替换empty()
时,您不需要html()
。