Не используйте setInterval
для этого. У него нет функциональности, которую вы, похоже, хотите (она повторяется). Вместо этого следует использовать JQuery и сделать что-то вроде этого:
$("#generateButton").click(function(event){
setTimeout(function(){
//Do what the button normally does
}, 1000);
});
Или (без JQuery):
var generateButton = document.getElementById("generateButton");
generateButton.addEventListener("click", function(){
setTimeout(function(){
//Do what the button normally does
}, 1000);
});
Использование setTimeout
над setInterval
является предпочтительным в вашем случае, поскольку setTimeout
работает только один раз в то время как setInterval
работает несколько раз.
Я предполагаю, что у вас есть в вашем html, <button id='generateButton' onclick='someFunction()'>Button Text</button>
. Удалите onclick='someFunction()
и положите someFunction()
, где я сказал (в примерах) «Сделайте то, что обычно делает кнопка».
Вы также можете добавить в код, который загружает кеш методом, который вызывает другой метод после загрузки кеша (когда вызывается someFunction()
с помощью кнопки, загружает кеш и в конце функции (установить это с помощью функции обратного вызова), после загрузки кэша, он вызывает другой метод onCacheLoaded()
, который может быть запущен после загрузки кэша
Попробуйте ['setTimeout'] (https://developer.mozilla.org/en-US/docs/Web/API/window.setTimeout) – Oriol
window.setTimeout (document.getElementById (" generateButton "), 1000) ; как это? – user3767481
'setInterval (...)' предназначен для повторного события (после вашей задержки) - вы можете думать о 'setTimeout (...)' для одноразовой вещи – ochi