我試圖在點擊按鈕時在li
的組合each()
和eq()
之間進行一個類。我使用與上一個和下一個按鈕相同的代碼,除了i+1
和i-1
,但它返回了我不同的問題。如何爲滑塊的分頁按鈕創建簡單的next和prev觸發按鈕?
HTML:
<span class="prev">prev</span>
<ul>
<li>0</li>
<li>1</li>
<li class="active">2</li>
<li>3</li>
<li>4</li>
</ul>
<span class="next">next</span>
的jQuery:
var li = $('li');
$('.prev').click(function() {
li.each(function(i) {
if ($(this).hasClass('active')) {
console.log(i);
//this returning current true value = 2
li.removeClass('active');
li.eq(i-1).addClass('active');
//this is working better
//problem is: not selecting 4
}
});
});
$('.next').click(function() {
li.each(function(i) {
if ($(this).hasClass('active')) {
console.log(i);
//this returning current true value = 2
//problem starts:
//li.removeClass('active');
//when this is active; all active classes are gone
li.eq(i+1).addClass('active');
//try to select next 'li' here
//but it is selecting all li's bigger than current value
}
});
});
從我+1,我需要不停的導航結構。你能解釋你的第一種方法嗎? – 2012-08-13 13:32:07
特別是我沒有得到這一行:i = i> = $('li')。length-1? 0:i + 1; – 2012-08-13 15:20:01
如果'i'等於或大於'li'的長度,這是列表元素的數量,那麼再次從零開始,否則只需向'i'加1。這是一個三元表達(if/else)! – adeneo 2012-08-13 16:06:00