1

私は、この最後のコードを連鎖させてうまく動作させようと試みてきました。

プリセットされた2つの関数を呼び出します

slideToImage(newIndex);
setCaption();

画像がスライドした後にキャプションを設定したい

これは、次のようなさまざまな呼び出し方法を試したため、常に混乱するトピックでした。

callbacks = $.Callbacks();

callbacks.add(slideToImage(newIndex));
callbacks.add(setCaption());
callbacks.fire();

しかし、それはうまくいきません

4

2 に答える 2

1

「setCaption」の場合は簡単です。

callbacks.add(setCaption);

「slideToImage」の場合、パラメーターを渡す必要があるため、少し複雑になります。

callbacks.add(function() { slideToImage(newIndex); });
于 2013-03-04T04:03:31.247 に答える
1

slideToImage時間の経過とともに発生する何らかのアニメーション ロジックを含める必要があります。そのslideToImageため、アニメーション プロセスを開始し、アニメーションが完了する前に戻るsetCaptionため、早期に呼び出されます。

コールバックとして渡しsetCaptionて、アニメーションが完了したら呼び出す必要があります。slideToImage

function slideToImage(newIndex, callback) {
    // I assume you're using jQuery for animation
    targetElement.animate({left: 100}, 200, function() {
        // once animation has finished we call the callback function
        callback();
    });
}

slideToImage(newIndex, function() {
    setCaption();
});
于 2013-03-04T04:17:53.673 に答える