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 回答