0

私はグーグルを上下に検索しましたが、簡単な解決策は見つかりませんでした。

これが私のコードの要旨です:

  var theArray = ["one","two","three","four"];


  $('.next').click(function(){
   // go forward on the array
  })

  $('.back').click(function(){
   // do backwards on the array from the current position
  })

したがって、ユーザーが"<button class="next">「1」のアラートをクリックすると、もう一度「次へ」をクリックし、「2」のアラートが表示されます...

これを行う簡単な方法はありますか?

4

2 に答える 2

5

もちろん:

theArray.push(theItem = theArray.shift());
// and...
theArray.unshift(theItem = theArray.pop());

theItemそれぞれ最初と最後の項目です。関数を繰り返し呼び出すと、アイテムが循環し続けます。

ただし、「最後に別のものを追加する」などのことはもうできないことに注意してください。それを取得するには、「現在のアイテム」を手動で追跡し、アイテムを循環させる代わりにインクリメント/デクリメントする必要があります。

于 2012-10-18T16:44:29.130 に答える
4

インデックスを追跡するには、2 つ目の変数が必要です。

var theArray = ["one","two","three","four"]; 
var arrayIndex=0;

      $('.next').click(function(){
         arrayIndex++
         if(arrayIndex>=theArray.length)
              arrayIndex=0;
         alert(theArray[arrayIndex]);   
      })

      $('.back').click(function(){
         arrayIndex--
         if(arrayIndex<0)
              arrayIndex=theArray.length-1;
         alert(theArray[arrayIndex]);   
      })
于 2012-10-18T16:45:14.133 に答える