2011-12-29 11 views
-2

jqueryでスライディングをアニメーション化する必要があります。しかし、3回だけ。私はこのコードを書いた。しかし、これは3回以上です。修正や別のコードを教えてください。前もって感謝します。javascriptで3回特定のコードを実行する必要があります

$(document).ready (function() { 
    var i=0; 
    while (i<3) {      
     $('a.nextbtn').click (function() { 
      $('ul.post-cat-sliding').stop().animate({"left": "-=596"},1500); 
     }); 
     i++; 
    } 
}); 

とも私は...前のボタンを持っているので、私は、以前のボタンのスライドをクリックした場合に戻るべき。

+0

たぶん、あなたは、これらのアプローチのいくつかを好むかもしれませんか?アニメーションをクリックイベントにバインドしていますが、ユーザーにリンクを3回クリックさせたいだけですか?現在のコードは 'a.nextbtn'要素をクリックするたびに同じコードを3回実行します。 – Jasper

+0

スライドショーに4つのアイテムがあると仮定します(「次へ」をクリックすると3回しか動作しません)。私は完全に別のアプローチをとるでしょう:許可されたクリックの数を数えないで、各クリックであなたが最後のスライドにいるかどうかをチェックして何もしません。 – JJJ

答えて

2

現在のコードでは、3つのクリックに限定するのではなく、1つのボタンで3つのクリックイベントを実際に付けています。したがって、現在のコードでは、スライダはワンクリックで3つのスライドを渡すと思います。

はダウン以下のコードを試してみてください。

$(document).ready (function() { 
    var i=0; 
    $('a.nextbtn').click (function() { 
     if(i < 3) { 
     $('ul.post-cat-sliding').stop().animate({"left": "-=596"},1500); 
     i++; 
     } 
    }); 
}); 
+0

パーフェクト。驚くばかり。ありがとう、カーン。 –

0

私が代わりにforループを使用したい:

$(document).ready(function(){ 
    $('a.nextbtn').click (function(){ 
     for(var i = 0; i<3;i++) 
     { 
      $('ul.post-cat-sliding').stop().animate({"left": "-=596"},1500); 
     } 
    }); 
}); 

編集:私はポストを読んだときだけループでconsernedました。 nextbtnをクリックしたときにアニメーションを3回実行する場合は、上記のコードを使用する必要があります。コードを再利用することができますa.prevbtn

0

for(var i = 0; i < 3; i++)かもしれないが、少しも冗長と思われます。あなたは `だけ3 times`何を意味するのです

for(i in [1,2,3]){ 
    console.log('three times') 
} 

または

for(i in new Array(3).fill()){ 
    console.log('three times') 
} 

または

for(i in '...'.split('')){ 
    console.log('three times') 
} 
関連する問題