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の両方をに初期化してから0clickイベント ハンドラーで次のようにします。

nextClicked = currentNextClicked + 1;

nextClicked0 + 1 = 1 であるため、これは 1 に設定されます。ただし、 の値を変更することはないcurrentNextClickedため、次にクリックしたときにもnextClicked0 + 1 の結果に設定されます。

于 2012-12-14T15:06:38.423 に答える
0

@Anthonyが言ったように、そうするとnextClicked = currentNextClicked + 1;、結果として常に1が得られます。

また、ifクリックするたびに次のチェックを行う必要があります。値は最初は常に に設定されるため、a.prevButtonオンロードを非表示にすることができます。nextClicked0

これを試して:

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 に答える