延迟功能不起作用?

时间:2017-02-02 23:52:14

标签: javascript jquery delay liquid

我正在尝试延迟此功能。

$(".add2cartPopEffect").on('click', hideModal);

当你点击按钮时它会“隐藏弹出框”但是我想延迟大约半秒而不是瞬间。

我起初认为这很容易。我只是添加.delay到最后..(我想)但它不工作,功能仍然立即激发......

$(".add2cartPopEffect").on('click', hideModal).delay( 800 );

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用 setTimeout 队列

使用 setTimeout

它调用函数或在指定的毫秒数后计算表达式。

更多详情here

$(".add2cartPopEffect").on('click', function() {
    setTimeout(hideModal, 800);
});

使用队列

它将您给定的函数添加到要在当前匹配的元素上执行的函数队列,然后在队列中为匹配的元素执行下一个函数,该函数当前是这个。

更多详情here

$(".add2cartPopEffect").on('click', function() {
    $(this).delay(800).queue(function() {
        hideModal();
        $(this).dequeue();
    });
});

答案 1 :(得分:0)

就像汉姆斯所说的那样,使用setTimeout就像这样:

$(".add2cartPopEffect").on('click', function() {
    setTimeout(hideModal, 500);
});