我正在一个有多个部分的网站上工作,每个部分都有大约 5-10 个项目。我正在尝试创建下一个/上一个导航,允许您滚动浏览每个部分中的项目。这是我为此编写的代码:
var prev_li = $('.projects ul li.selected').prev('li'),
prev_href = $(prev_li).children().attr('href'),
next_li = $('.projects ul li.selected').next('li'),
next_href = $(next_li).children().attr('href');
$('#previous-project').click(function(e){
if ($(prev_li).length) {
window.location = prev_href;
return false;
} else {
window.location = last_href;
return false;
}
});
然后在下一个项目中也是如此。我的问题是有重复的项目(有些项目在多个部分)。这意味着多个项目具有相同的 URL,因此某些项目在真正未被选中时会获得“选中”类。这意味着当您在一个位于多个部分的项目上并单击下一个或上一个按钮时,它将从项目的第一个实例转到上一个项目(即使它在另一个部分中)。我需要一些有效的方法来指定每个部分中的项目列表,因此它只在这些项目中轮换。
我的一个想法是为每个项目列表添加一个类并执行以下操作:
var traeng_prev_li = $('.transportation-engineering.projects ul li.selected').prev('li'),
traeng_prev_href = $(traeng_prev_li).children().attr('href'),
traeng_next_li = $('.transportation-engineering.projects ul li.selected').next('li'),
traeng_next_href = $(traeng_next_li).children().attr('href');
// same variables for each section
$('#previous-project').click(function(){
if ($(traeng_prev_li).length) {
window.location = traeng_prev_href;
return false;
} else if ($(struct_prev_li).length) {
window.location = struct_prev_href;
return false;
} else if ($(civil_prev_li).length) {
window.location = civil_prev_href;
return false;
} else if ($(archi_prev_li).length) {
window.location = archi_prev_href;
return false;
.... //all the way down through all the sections
这样做的问题是a)效率非常低,b)我认为即使您不在该列表中,它仍然有长度,所以问题仍然存在?