Hola eurodoblon,
yo cuando he querido retrasar una función lo he hecho con setTimeout a la hora de llamarlo.
Me explico:
En vez de llamar a la función así:
lo hago así:
Código:
setTimeout('mifuncion()',1000); //se ejecuta después de que pase 1 segundo.