2012-12-14 90 views
1

我試圖添加1到一個變量時單擊下一個按鈕將顯示一個隱藏的前一個按鈕,但我似乎無法得到添加1部分工作。我貼的代碼和下方的jsfiddle鏈接:jquery的鏈接點擊添加1到變量

http://jsfiddle.net/huddds/JesBR/1/

HTML

<a href="#" class="prevButton">PREVIOUS</a> 
    <a href="#" class="nextButton">NEXT</a> 

的Javascript

nextClicked = 0; 
currentNextClicked = nextClicked; 

$(document).ready(function() { 

    $('a.nextButton').live('click', function(){ 
     nextClicked = currentNextClicked + 1; 
     return false; 
    }); 

    if(nextClicked == 0){ 
     $('a.prevButton').hide();  
    } 
    if(nextClicked == 1){ 
     $('.prevButtonFalse').hide(); 
     $('.prevButton').show(); 

    } 
    if(nextClicked == 2){ 

    } 
    if(nextClicked == 3){ 

    } 
    if(nextClicked == 4){ 

    } 
});​ 

CSS

.nextButtonFalse{display:none;} 
.prevButtonFalse{display:none;} 

任何幫助會很好,預先感謝任何迴應。

我決定去與此選項:

HTML

<div>Total : <span id="total">0</span></div> 
<input class="subtract" data-amount="1" type="button" value="PREVIOUS" /> 
<input class="add" data-amount="1" type="button" value="NEXT" /> 

jQuery的

$(document).ready(function() { 
    $('.add').click(function() { 
     $('#total').text(parseInt($('#total').text()) + parseInt($(this).data('amount'))); 
    }); 
}) 


$(document).ready(function() { 
    $('.subtract').click(function() { 
     $('#total').text(parseInt($('#total').text()) - parseInt($(this).data('amount'))); 
    }); 
}) 

http://jsfiddle.net/huddds/JesBR/20/

+0

你的if語句只在​​DOM準備運行時...如果您每次需要這些檢查時都應將它們放入您的點擊事件處理程序中 –

回答

2

您只在文件加載時檢查nextClicked的值。將它放在live點擊處理程序上。您還需要更新currentNextClicked的值。也許將currentNextClicked = nextClicked;移動到點擊處理程序是你想要的?

$(document).ready(function() { 
    $('a.nextButton').live('click', function(){ 
     currentNextClicked = nextClicked; 
     nextClicked = currentNextClicked + 1; 
     foo(); 
     return false; 
    }); 

    foo(); 
}); 

function foo(){ 

    if(nextClicked == 0){ 
     $('a.prevButton').hide();  
    } 
    if(nextClicked == 1){ 
     $('.prevButtonFalse').hide(); 
     $('.prevButton').show(); 
    } 
    if(nextClicked == 2){ 

    } 
    if(nextClicked == 3){ 

    } 
    if(nextClicked == 4){ 

    } 

} 

http://jsfiddle.net/JesBR/19/

+1

您應該在答案本身中包含所有相關代碼,以便即使jsFiddle鏈接到期或jsFiddle網站停止時仍然有用。 –

+0

好點,補充。 – Sharlike

+0

這似乎工作的第一個案件,我已經添加了第二個,但似乎並沒有工作:http://jsfiddle.net/huddds/JesBR/15/ – huddds

0

你初始化nextClickedcurrentNextClicked0,然後在click事件處理你這樣做:

nextClicked = currentNextClicked + 1; 

,將設置nextClicked 1,因爲0 + 1 = 1。但是,你永遠不會改變的currentNextClicked值,所以下次點擊它也會將nextClicked設置爲0 + 1的結果。

0

正如@Anthony說,當你做nextClicked = currentNextClicked + 1;您時刻1作爲結果。

另外,你需要每一個點擊後做出以下if檢查,你可以在負載隱藏a.prevButtonnextClicked值最初將始終設置爲0

試試這個:

http://jsfiddle.net/nienn/JesBR/18/

nextClicked = 0; 

function onClickCheck(){ 

    if(nextClicked == 0){ 
     $('a.prevButton').hide();  
    } 
    if(nextClicked == 1){ 
     $('.prevButtonFalse').hide(); 
     $('.prevButton').show(); 
    } 
    if(nextClicked == 2){ 

    } 
    if(nextClicked == 3){ 

    } 
    if(nextClicked == 4){ 

    } 
} 

$(document).ready(function() { 

    $('a.prevButton').hide(); 
    $('a.nextButton').live('click', function(e){ 
     nextClicked += 1;   
     onClickCheck(); 
     e.preventDefault(); 
    }); 

});​