4
$('.ip_button').click(function(){
   var buttonValue, slideTimes;
   buttonValue = $(this).html();
   slideTimes = parseInt(buttonValue) - 1;
   for (var i = 0 ; i < slideTimes; i++) { 
          slider.gallery_next(); 
       }             
});

こんにちは、ボタン -1 の値を決定する関数を使用してスライダー上で複数の画像をスライドさせようとしており、スライドを何度も実行しています。残念ながら、ボタンの値に関係なく、関数は一度しか実行しません。ボタンの現在の値は次のとおりです。

<button class="ip_button">5</button>

gallery_next() の関数; カプセル化され、次のようになります。

this.gallery_next = function() {
    if (galleryRotating) { return; }
    galleryRotating = true;
    var elem = $(galleryId + " > li").first();
    $(galleryId).append(elem.clone());
    $(galleryId).animate({"left" : -imgWidth}, 650, function() {
        elem.remove();
        galleryRotating = false;
        $(galleryId).css({"left" : 0});
    });
4

1 に答える 1

3

ループが関数を再度呼び出すanimateまでに は終了しないため、依然として true であり、関数は何もしません。別のアプローチが必要です。たとえば 700 ミリ秒で関数を呼び出すようにタイマーを設定するか、(どちらがよいか) に渡すコールバックで再度回転を呼び出します。forgalleryRotationanimate

于 2013-03-14T13:26:30.407 に答える