Pregunta

Sé que es bastante básico, pero simplemente no puedo conseguir que funcione. se sigue echando "objeto esperado" error ...

 $(document).ready(function(){   
    setTimeout('showMessage()', 1000); 

    function showMessage() { 
        alert('abc');
    } 
    });
¿Fue útil?

Solución

Usted ha envuelto su función entre comillas, por lo que lo trata como una cadena, no como el objeto que está esperando, por lo que, como dijo SLaks:

 $(document).ready(function(){   
    setTimeout(showMessage, 1000); 

    function showMessage() { 
        alert('abc');
    } 
    });

Otros consejos

Tienes un problema de alcance:. showMessage() sólo es visible en el canto del función anónima, pero cuando el parámetro a setTimeout() se evalúa, el tiempo de ejecución ya la izquierda del alcance

Utilice la función directamente como argumento para setTimeout() y deshacerse del mal [TM] Evaluación cadena:

setTimeout(showMessage, 1000); 

El método setTimeout se utiliza mejor con una función y no una cadena. Por lo tanto, la mejor manera de hacer esto sería así:

$(document).ready(function() {
    setTimeout(showMessage, 1000);
});

function showMessage() { 
    alert('abc');
}

El problema es que la función ShowMessage se declara dentro del evento listo y setTimeout ( "ShowMessage ()", 1000) lo buscará en el ámbito global. Puede mover su declaración a un ámbito global, por ejemplo, de evento listo o bien utiliza el SLaks responden: setTimeout (ShowMessage, 1000)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top