2013-05-07 43 views
0

我有3個項目,我想一次顯示。我總共有4個。如果用戶點擊左箭頭,應該從開始和結束減去一個項目,如果他們點擊右箭頭,它應該添加到開始和結束。我的問題是,當我點擊前進時,它不會在倒退時加或減。這可能相當簡單。這是我的代碼。再說一遍,除非我以這種錯誤的方式進行,否則當我單擊右箭頭或左箭頭時,我希望我的起始索引和結束索引發生更改。 jsfiddlejquery使用切片來顯示Li的基於點擊

$(function() { 
    var backLi = 0; 
    var forwardLi = 3; 
     var end = forwardLi + 1;   

if (end == $(".divsize ul li").length) end = undefined; 
    $(".divsize ul li").css({"display" : "none"}); 
if (end) 
    $(".divsize ul li").slice(backLi , forwardLi).addClass("showItem"); 


    $(".rightArr").click(function() { 
     backLi = backLi + 1; 
     forwardLi = forwardLi + 1; 
     $('input.forward').val(backLi); 
     $('input.backLi').val(forwardLi);  
    });  

    $(".leftArr").click(function(){ 
     backLi = backLi - 1; 
     forwardLi = forwardLi - 1; 
     $('input.forward').val(backLi); 
     $('input.backLi').val(forwardLi); 
    }); 
}); 

謝謝你的幫忙。

+0

不應該你的語法是:'backLi = backLi + 1' vs你在條件中有什麼?否則,每次點擊它們時,它們都會變爲1或-1。沒有任何增加/減少發生。 – Dawson 2013-05-07 14:49:34

+0

我明白你說什麼我會做出改變,看看有什麼變化。謝謝。 – Cam 2013-05-07 15:02:05

+0

這對我的問題沒有任何改變,請參閱我的小提琴http://jsfiddle.net/cornelas/cnqM7/2/ – Cam 2013-05-07 15:04:52

回答

0

閱讀文檔後,我不喜歡你的語法。看看這個jQuery代碼解決您的問題:

var backLi = 0; 
    var forwardLi = 2; 
    $(".divsize ul li").slice(backLi , forwardLi); 
    $(".rightArr").click(function() { 
     console.log(backLi, forwardLi); 
     backLi = backLi + 1; 
     forwardLi = forwardLi + 1; 
     $('input.forward').val(backLi); 
     return false; 
    })  
    $(".leftArr").click(function() { 
     console.log(backLi, forwardLi); 
     backLi = backLi - 1; 
     forwardLi = forwardLi - 1; 
     $('input.forward').val(backLi); 
     return false; 
    }) 

順便說一句 - 你有lefttArr(額外的「T」),而不是leftArr在你的代碼。

+0

我已經對我的代碼做了一些改變,我很快就會在這裏上傳,但即時接近,我抓住了lefttarr哎呀,現在我正在做的是添加類來顯示backLi和forwardLi之間的項目剛剛完成if語句現在。 – Cam 2013-05-07 16:34:57