2010-09-02 68 views
6

我米使用下面的脚本调用onload事件的功能,但它在IE浏览器不工作的jQuery的onload功能

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

回答

18

如果您正在使用jQuery你可以使用ready()功能,像这样:

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

或甚至更简单,只是通过该方法将jQuery:

$(callFact); 

只要DOM可用于操作,它就会触发,有时会早于onload

1

您应该使用就绪()在http://api.jquery.com/ready/

+0

非常感谢您的所有答案。 在文件准备工作中调用函数!!! – Shaun 2010-09-02 05:17:32

+0

那么你应该将这个解决方案标记为答案;) – Rahul 2010-09-02 05:22:56

+0

实际上所有的答案都是正确的:) – Shaun 2010-09-02 06:21:19

1

更多你可能会想这样做,而不是:

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

如果你的calFact()不是针对特定的DOM元素,那么gnarf的答案绝对是最好的。 :) – 2010-09-02 04:55:36

5

您不能在比窗口以外的任何设置onload事件处理程序。 (好吧,你可以,但它不会起作用。)如果你想让calFact在onload事件中运行,你应该使用$(window).load(calFact);。但通常在DOMready事件中调用事件更有用:$(document).ready(calFact);或简称为$(calFact);。不同之处在于,当加载的所有内容(包括加载速度缓慢的图像)都会发生onload,并且在加载DOM树(但不一定还需要图像)时发生DOMready。

此外,当只有一个身份时,将身份号码body分配给身体没有多少意义;你可以使用$('body')

+1

图像fire'onload'的用处以及... – gnarf 2010-09-02 05:13:03

+0

IFRAME fire onload event too ... ;-) – Nordin 2010-09-02 05:15:41

+1

是的,通常具有'src'属性的元素(比如'object','applet', 'embed','script' ...)。 – Tgr 2010-09-02 06:23:40