1

我试图在单击下一个按钮时将 1 添加到变量中,这将显示一个隐藏的上一个按钮,但我似乎无法让添加 1 部分工作。我在下面粘贴了代码和指向 jsfiddle 的链接:

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/ ​ ​ ​</p>

4

3 回答 3

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/

于 2012-12-14T15:08:48.203 回答
0

您初始化nextClickedcurrentNextClicked两者0,然后在您的click事件处理程序中执行以下操作:

nextClicked = currentNextClicked + 1;

这将设置nextClicked为 1,因为 0 + 1 = 1。但是,您永远不会更改 的值currentNextClicked,因此下次单击时,它仍将设置nextClicked为 0 + 1 的结果。

于 2012-12-14T15:06:38.423 回答
0

正如@Anthony 所说,当你这样做时,nextClicked = currentNextClicked + 1;你总是得到 1 作为结果。

此外,您需要if在每次单击后进行以下检查,并且您可以隐藏a.prevButton加载时的值,因为该nextClicked值最初始终设置为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();
    });

});​
于 2012-12-14T15:27:17.810 回答