链接上的jquery单击将1添加到变量

时间:2012-12-14 15:03:32

标签: jquery variables

我正在尝试在单击下一个按钮时向变量添加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/             

3 个答案:

答案 0 :(得分: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 :(得分:0)

您将nextClickedcurrentNextClicked初始化为0,然后在click事件处理程序中执行此操作:

nextClicked = currentNextClicked + 1;

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

答案 2 :(得分: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();
    });

});​