[javascript] jQuery : 코드를 실행하지 않고 1 초간 대기 / 지연

.delayjQuery 에서 메소드를 작동 시킬 수 없습니다 .

$.delay(3000); // not working
$(queue).delay(3000); // not working

제어되지 않는 변경 값이 다른 값보다 크거나 같을 때까지 대기하기 위해 while 루프를 사용하고 있으며 X 초 동안 실행을 중단 할 수있는 방법을 찾을 수 없습니다.



답변

$ .delay는 큐에서 애니메이션을 지연시키는 데 사용되며 실행을 중단하지 않습니다.

while 루프를 사용하는 대신 다음을 사용하여 매초마다 검사를 수행하는 메소드를 재귀 적으로 호출해야합니다 setTimeout.

var check = function(){
    if(condition){
        // run when condition is met
    }
    else {
        setTimeout(check, 1000); // check again in a second
    }
}

check();


답변

이런 식으로 일부 작업을 지연시킬 수도 있습니다.

setTimeout(function (){

  // Something you want delayed.

}, 5000); // How long do you want the delay to be (in milliseconds)? 


답변

ES6 setTimeout

setTimeout(() => {
  console.log("we waited 204586560000 ms to run this code, oh boy wowwoowee!");
}, 204586560000);

편집 : 204586560000 ms는 내가 올바르게 계산했다고 가정하고 원래 질문 과이 답변 사이의 대략적인 시간입니다.


답변

jQuery의 delay기능은 효과 및 효과 대기열과 함께 사용하기위한 것입니다. delay문서 및 예제를 참조하십시오 .

$('#foo').slideUp(300).delay(800).fadeIn(400);

변경 사항에 대한 변수를 관찰하려면 다음과 같이 할 수 있습니다

(function() {
    var observerInterval = setInterval(function() {
        if (/* check for changes here */) {
           clearInterval(observerInterval);
           // do something here
        }
    }, 1000);
})();


답변

JavaScript setTimeout는 매우 좋은 솔루션입니다.

function funcx()
   {
   // your code here
   // break out here if needed
   setTimeout(funcx, 3000);
   }

funcx();

delayjQuery 의 함수는 주로 jQuery 애니메이션 대기열에서 애니메이션을 지연시키는 데 사용됩니다.


답변

delay()코드 흐름을 중단하지 않고 다시 실행하십시오. JavaScript에서는 그렇게 할 수있는 실용적인 방법이 없습니다. 모든 것은 setTimeout다른 사람들이 언급 한 것과 같이 콜백을 취하는 함수로 수행해야합니다 .

jQuery의 목적은 delay()애니메이션 큐가 실행되기 전에 대기하도록하는 것입니다. 예를 들어 $(element).delay(3000).fadeIn(250);3 초 후에 요소가 희미 해집니다.


답변

자바 스크립트 만 jQuery없이 작동합니다.

<!DOCTYPE html>
<html>
    <head>
        <script>
            function sleep(miliseconds) {
                var currentTime = new Date().getTime();
                while (currentTime + miliseconds >= new Date().getTime()) {
                }
            }

            function hello() {
                sleep(5000);
                alert('Hello');
            }
            function hi() {
                sleep(10000);
                alert('Hi');
            }
        </script>
    </head>
    <body>
        <a href="#" onclick="hello();">Say me hello after 5 seconds </a>
        <br>
        <a href="#" onclick="hi();">Say me hi after 10 seconds </a>


    </body>
</html>