使用jQuery链接到预定义的函数

时间:2013-03-04 03:57:52

标签: javascript javascript-events jquery

我一直试图将最后一段代码链接起来以便很好地工作。

它调用了2个已预设的功能

slideToImage(newIndex);
setCaption();

我想在图像滑动后设置标题

这对我来说一直是一个令人困惑的话题,因为我尝试了不同的方法来调用它,例如

callbacks = $.Callbacks();

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

但这不起作用

2 个答案:

答案 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();
});