我遇到了将计时器功能与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);
});
谢谢。