2012-11-19 155 views
0

我在尋找幫助,IF語句。我正在嘗試完成這個水平滾動操作,最後一點是不僅僅在到達結束時禁用滾動操作,而且還要禁用(以及更改顏色)滾動按鈕。當它們可以再次滾動時變回。jQuery的不能讓if語句工作

http://jsfiddle.net/stfzy/83/

編輯*我已經更新了jQuery和擁有的一切,除了只有一個if語句工作:

$('div#arrowL').click(function(){ 
    if(index < 0){ //can't scroll 
     $('div#arrowL').addClass('active'); 
    } 
});   

我需要這個類添加回時,你不能向左滾動了。我認爲這個問題與「索引< 0」部分有關,但我沒有看到我需要改變它以使其起作用。

任何幫助表示讚賞。

+0

目前尚不清楚您的具體問題是什麼。描述重現問題的步驟,描述發生的情況並描述你想要發生的事情。你的'if'語句中的兩個(了'。點擊()'處理程序將只執行一次,當第一次加載頁面。 – jfriend00

+0

謝謝你的評論。這讓我大開眼界的解決方案之外的人。我的聲明與右側的箭頭/按鈕現在的工作。只是不知道在哪裏,我在左側腳麻。 – jstacks

回答

1

您的if(index...語句只會在頁面加載時運行。他們需要在您的點擊處理程序中才能檢查當前狀態。既然你已經擁有了反向測試,只需添加一個else

$('div#arrowR').click(function() { 
    if (index < endIndex) { 
     index++; 
     $item.animate({ 
      'left': '-=300px' 
     }); 
     $('div#arrowR').removeClass('active'); 
    }else{  
     $('div#arrowR').addClass('active'); 
    } 
}); 

DEMO:http://jsfiddle.net/stfzy/48/

+0

謝謝你的幫助。我在尋找它的工作有點不同(看我更新的jsfiddle ,它適用於我想要的右側),但是你絕對幫助我指導了正確的方法。 – jstacks

+0

我看上去......你用3個單擊處理程序編寫每個元素的方式是非常糟糕的做法,並且會導致代碼難以維護或擴展 – charlietfl