我正在一個有多個部分的網站上工作,每個部分都包含大約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
的問題,這是一個),這是非常低效和b)我想就算你不在列表中,它仍然有一個長度,所以問題仍然存在?
好吧,我覺得有道理。那麼,在每個常規項目頁面上,我都會將相應的#結尾添加到邊欄鏈接中?然後我會將代碼更改爲上面的代碼。這將消除重複每個部分的代碼的需要嗎?我想我正在理解這個概念,但是你如何執行對我來說沒有什麼意義。 $()中的代碼選擇了什麼?這將如何選擇正確的李? – Andrew 2010-11-04 14:26:59
@andrew是的,您的項目網址需要添加'#'部分。我還更新了一些更多的信息.. –
2010-11-04 14:53:21
這非常有道理。非常感謝你的幫助! – Andrew 2010-11-04 15:23:39