2010-09-02 11 views
6

I m utilizando la siguiente secuencia de comandos para llamar a una función onload pero no funciona en IEjQuery función onload

("#body").attr({onload : "calFact();"});

Respuesta

18

Si está utilizando jQuery se puede utilizar la función de ready() así:

$(function() { 
    callFact(); 
}); 

o incluso más simple, sólo tiene que pasar el método de jQuery:

$(callFact); 

Se disparará tan pronto como el DOM esté disponible para manipular, a veces antes de onload.

1

Debe utilizar ready()

Más contenido en http://api.jquery.com/ready/

+0

Muchas gracias por todas las respuestas. ¡Invocando la función en trabajos listos para documentos! – Shaun

+0

entonces debería marcar esta solución como la respuesta;) – Rahul

+0

En realidad, todas las respuestas fueron verdaderas :) – Shaun

1

Usted probablemente querrá hacer esto en su lugar:

$('#body').ready(function(){ 
    calFact(); 
}); 
+1

La respuesta de gnarf es definitivamente mejor si su calFact() tampoco está dirigido a un elemento DOM específico. :) –

5

No es posible ajustar controladores de eventos onload en otra cosa que la ventana nada . (Bueno, puede, pero no tendrá ningún efecto). Si desea que calFact se ejecute en el evento de carga, debe usar $(window).load(calFact);. Pero, en general, es más útil llamar a cosas en el evento DOMready: $(document).ready(calFact); o simplemente $(calFact); para abreviar. La diferencia es que la carga ocurre cuando todo lo que se carga (incluidas las imágenes, que tardan en cargarse) y DOMready sucede cuando se carga el árbol DOM (pero las imágenes no necesariamente aún).

Además, no tiene mucho sentido asignar una identificación de body al cuerpo cuando solo hay uno de todos modos; solo puede usar $('body').

+1

Imágenes fuego 'onload' por utilidad también ... – gnarf

+0

IFRAME evento de descarga de fuego también ... ;-) – Nordin

+1

Es cierto, y en general elementos con un atributo' src' (como 'object',' applet', 'embed',' script' ...) do. – Tgr