链接jQuery延迟

时间:2013-10-29 16:48:23

标签: javascript jquery synchronization deferred

我遇到了将计时器功能与jquery延迟同步的问题。 我写了一个函数,显示超时后的工具提示,并在另一个超时后删除它。 如果我两次调用它可以工作,但第二次调用会在第二次调用后立即执行。 是什么让我错了?

这是被称为3次的函数:

function tutorial($element, qtipConfig, startTimeout, stopTimeout) {

    var dfd = $.Deferred();

    window.setTimeout(function() {

        // tooltip
        var qtip = $element.qtip(qtipConfig);
        // api
        var qtipApi = $element.qtip('api');
        // show tooltip
        qtipApi.show();

        window.setTimeout(function() {
            qtipApi.hide();
            dfd.resolve();
        }, stopTimeout);

    }, startTimeout);

    return dfd.promise();
};

这是如何调用此函数:

    tutorial($('.mybutton'), qtipConfig, 1000, 2000)
    .then(
        function() {
            return tutorial($('.button2'), qtipConfig, 1000, 2000);
        })
    .then(
        function() {
            return tutorial($('.button3'), qtipConfig, 1000, 2000);
    });

谢谢。

0 个答案:

没有答案