quiero retrasar la ejecución de Transcurrirá los códigos follwoing:Cómo retrasar la ejecución de entre el siguiente en mi Javascript
$("#myName").val("Tom");
///delay by 3s
$("#YourName").val("Jerry");
//delay by 3s
$("#hisName").val("Kids");
quiero retrasar la ejecución de Transcurrirá los códigos follwoing:Cómo retrasar la ejecución de entre el siguiente en mi Javascript
$("#myName").val("Tom");
///delay by 3s
$("#YourName").val("Jerry");
//delay by 3s
$("#hisName").val("Kids");
Usted puede utilizar setTimeout
para ello:
setTimeout(function() {
// Your code here
}, delayInMilliseconds);
Ej:
$("#myName").val("Tom");
/// wait 3 seconds
setTimeout(function() {
$("#YourName").val("Jerry");
/// wait 3 seconds
setTimeout(function() {
$("#hisName").val("Kids");
}, 3000);
}, 3000);
setTimeout
programa una función que se ejecutará (una vez) después de un intervalo. El código que lo llama continúa, y en algún punto en el futuro (después de más o menos el tiempo que especifique, aunque no con precisión) el navegador llama a la función.
Supongamos que tiene una función llamada output
que adjuntó texto a la página. La salida de este:
foo();
function foo() {
var counter = 0;
output("A: " + counter);
++counter;
setTimeout(function() {
output("B: " + counter);
++counter;
setTimeout(function() {
output("C: " + counter);
++counter;
}, 1000);
}, 1000);
output("D: " + counter);
++counter;
}
... es (después de un par de segundos):
A: 0 D: 1 B: 2 C: 3
Nota de la segunda línea del mismo. El resto del código foo
se ejecuta antes de cualquiera de las funciones programadas, por lo que vemos la línea D
antes de la línea B
.
setTimeout
devuelve un identificador (que es un no-cero número) se puede utilizar para cancelar la devolución de llamada antes de que suceda:
var handle = setTimeout(myFunction, 5000);
// Do this before it runs, and it'll never run
clearTimeout(handle);
También está el relacionado setInterval
/clearInterval
, que hace lo mismo, pero en repetidas ocasiones en el intervalo que especifique (hasta que lo detenga).
Puede usar la función setTimeout. Creo que la sintaxis es
window.setTimeout('$("#YourName").val("Jerry")',3000);
Parafraseando al Dalai Lama: Nunca use cadenas con 'setTimeout' si puede evitarlo. Siempre puedes evitarlo. –
Él es un hombre sabio, ese tipo Lama – Gareth
Él es el más sabio :) Tienes razón, debería haber puesto un descargo de responsabilidad sobre cómo poner el código js en cuerdas. – Jad
No se puede "retrasar" en JavaScript sin bloquear el navegador; es decir, el usuario no puede mover el mouse ni hacer clic en nada (¡indeseable durante más de 3 segundos!).
En su lugar, usted debe buscar en el establecimiento de un tiempo de espera, que se ejecutará el código designado algún momento en el futuro ...
$("#myName").val("Tom");
setTimeout(function() {
$("#YourName").val("Jerry");
setTimeout(function() {
$("#hisName").val("Kids");
}, 3000);
}, 3000);
Se puede extraer de la documentación para setTimeout
aquí: https://developer.mozilla.org/en/window.setTimeout. Lo básico es que pasa una referencia de función o una cadena (que debe evitarse) como primer parámetro, con el segundo parámetro que especifica cuántos milisegundos debe demorar el código.
Si el retraso es siempre el mismo (3 en el ejemplo), es posible evitar código anidado y utilizar en lugar de setInterval
setTimeout
:
var i
, ids = ["myName", "YourName", "hisName"]
, names = ["Tom", "Jerry", "Kids"];
i = setInterval(function() {
if (ids.length > 0) {
$("#" + ids.shift()).val(names.shift());
} else {
clearInterval(i);
}
}, 3000);
[Posible duplicado] (http://stackoverflow.com/questions/ 951021/javascript-sleep) - Javascript sleep –