我一直试图将最后一段代码链接起来以便很好地工作。
它调用了2个已预设的功能
slideToImage(newIndex);
setCaption();
我想在图像滑动后设置标题
这对我来说一直是一个令人困惑的话题,因为我尝试了不同的方法来调用它,例如
callbacks = $.Callbacks();
callbacks.add(slideToImage(newIndex));
callbacks.add(setCaption());
callbacks.fire();
但这不起作用
答案 0 :(得分:1)
对于“setCaption”,很容易:
callbacks.add(setCaption);
对于“slideToImage”,因为你需要传递一个参数,所以它涉及的更多:
callbacks.add(function() { slideToImage(newIndex); });
答案 1 :(得分: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();
});