发现这非常棘手。我必须使用的是一个等级编号 - [ - 1,0,1,2,3,4,5],我用它作为密钥 - 从中我必须生成1个前一个和下一个下一个链接。这是我到目前为止所做的:
var grUrl = {
'-1': '/preschool_fun.html',
'0': '/kindergarten_activities.html',
'1': '/first_grade_stuff.html',
'2': '/second_grade_education.html',
'3': '/third_grade_crafts.html',
'4': '/fourth_grade_numbers.html',
'5': '/fifth_grade_reading.html'
};
function prevGrade(num) {
return grUrl[($.inArray(num, grUrl) - 1 + grUrl.length) % grUrl.length];
}
function nextGrade(num) {
return grUrl[($.inArray(num, grUrl) + 1) % grUrl.length];
}
$(document).on('click', 'a.leftarr', function() {
var gradeNum = $(this).attr('data-grade');
var prevLink = prevGrade(gradeNum);
window.location = prevLink;
return false;
});
然后我会对nextLink var进行反演。麻烦的是,我不知道如何:
(是的,这里的prev / next函数是针对标准数组而不是对象建议的 - 对象是否有类似的方法?)
答案 0 :(得分:0)
可能在尝试通过使用jQuery对象进行节约时,我创建的问题多于简单使用更直接但更简洁的解决方案。我找到的答案是使用两个数组(基于:'get prev and next items in array'):
var grPos = [
'-1',
'0',
'1',
'2',
'3',
'4',
'5'
];
var grUrl = [
'/preschool_crafts.htm',
'/kindergarten_games.htm',
'/first_grade_letters.htm',
'/second_grade_numbers.htm',
'/third_grade_activities.htm',
'/fourth_grade_trips.htm',
'/fifth_grade_reading.htm'
];
$(document).on('click', 'a.leftarr', function(){
window.location = grUrl[($.inArray($(this).attr('data-grade'), grPos) - 1 + grPos.length) % grPos.length];
return false;
});
$(document).on('click', 'a.rightarr', function(){
window.location = grUrl[($.inArray($(this).attr('data-grade'), grPos) + 1) % grPos.length];
return false;
});
希望有人觉得这很有用。