我有一个页面,在dom准备好在页面加载时就可以运行函数。然后,我想在用户单击链接时再次触发它,但是第二次它运行时,我希望它暂停几秒钟。

我试过以下内容,该函数运行,但超时没有。

function changeRestrictionTime(time) {
    // DO STUFF
}

require(["dojo/domReady!"], function(){
    changeRestrictionTime('12:00 pm');
    var next7 = document.getElementById('next-7days');
    next7.addEventListener('click', function() {
        setTimeout(changeRestrictionTime('12:00 pm'), 5000);
    }, false);
});


请让我知道问题是什么。

请注意-尽管我为domReady使用了dojo函数,但我实际上并不知道任何dojo,因此更喜欢使用香草JS。我也无权访问任何其他库。
我也无权访问标记或AJAX请求功能

最佳答案

您需要传递一个函数引用:

 setTimeout(function() {changeRestrictionTime('12:00 pm')}, 5000);


您正在立即执行该函数并传递其返回值。

09-25 22:28