$(document).ready(function(){ function sample() { alert("This is sample function"); } $("#button").click(function(){ t = setTimeout("sample()",2000); }); });HTML:
<input type="button" id="button" value="Call sample function with delay"> Una vez que hago clic en el botón, la función sample() no se llama con un retraso de 2 segundos. No se lo que está mal.
¿Cómo llamar a la función JavaScript usando setTimeout() a través de jQuery?
Dado que declara sample dentro de la función anónima que pasa a ready , se limita a esa función.
Luego pasa una cadena a setTimeout que se eval después de 2 segundos. Esto tiene lugar fuera del alcance actual, por lo que no puede encontrar la función.
Solo pase funciones a setTimeout , usar eval es ineficiente y difícil de depurar.
setTimeout(sample,2000)Muy fácil, solo llame a la función dentro de una cantidad específica de milisegundos usando setTimeout()
setTimeout(myFunction, 2000) function myFunction() { alert('Was called after 2 seconds'); }O incluso puede iniciar la función dentro del tiempo de espera, así:
setTimeout(function() { alert('Was called after 2 seconds'); }, 2000)