$(window).load()在IE和FF上的工作方式不同

时间:2010-02-02 14:30:07

标签: javascript jquery

我正在使用$(window).load() ...并发现了一个问题。 实际上,根据此功能,第一个窗口应该加载,然后此函数下的任何实现都应该开始工作。 这适用于IE但不适用于FF。 在FF中它的工作方式与$(document).ready()

相同

有人可以建议任何替代方法,或者FF表现得像这样的原因。

2 个答案:

答案 0 :(得分:6)

您的第二种方法是首选方法,适用于FF和IE:

$(document).ready(function(){ /*.code.*/ });

或简写形式:

$(function(){ /*.code.*/ });

答案 1 :(得分:4)

要添加到Jonathans的答案,jQuery自己的文档有关$(document).ready:

“虽然JavaScript提供了在呈现页面时执行代码的加载事件,     直到所有资产(如图像)完全被触发后才会触发此事件     接收。在大多数情况下,只要DOM层次结构可以运行脚本     完全构造。传递给.ready()的处理程序保证在执行之后执行     DOM已准备就绪,因此这通常是附加所有其他事件处理程序的最佳位置     运行其他jQuery代码。使用依赖CSS样式值的脚本时     属性,引用外部样式表或嵌入样式元素很重要     在引用脚本之前。“

来源:http://api.jquery.com/ready/

编辑:

根据您的评论,听起来您依赖于另一个javascript执行,然后您希望脚本执行以获取值。我可以在这里想到两个选择:

1)如果另一个脚本在你的控件中,那么让它在你的load()函数中调用你想要的代码。

2)如果这个其他代码不在您的控制范围内,那么您最好的方法是“观察”感兴趣的字段,以便更改它,这样您就知道何时调用自己的脚本。我不相信jQuery内置了这个功能(对于非表单字段),但有插件(例如http://plugins.jquery.com/taxonomy/term/1939)。