我正在使用$(window).load()
...并发现了一个问题。
实际上,根据此功能,第一个窗口应该加载,然后此函数下的任何实现都应该开始工作。
这适用于IE但不适用于FF。
在FF中它的工作方式与$(document).ready()
有人可以建议任何替代方法,或者FF表现得像这样的原因。
答案 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)。