2010-02-02 52 views
3

我正在使用$(window).load() ...并找到一个问题。 实际上按照这个函数第一个窗口应该加载,然后在这个函数下的任何实现应该开始工作。 这适用于IE,但不适用于FF。 在FF中其工作方式如$(document).ready()

有人可以提出任何替代方法,或者FF的行为如此的原因。

回答

6

你的第二个方法是首选的方法,对于FF和IE浏览器的工作:

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

或者速记形式:

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

+1因为我不知道$(function(){....}); – 2010-02-02 14:38:01

+0

多数民众赞成在罚款,但有时你确实需要$(窗口).load() – Wondering 2010-02-02 14:38:22

+0

@Wondering - 我很好奇,什么是load()over ready()的用例? (不说没有,我真的很好奇) – Matt 2010-02-02 14:41:25

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)。

+0

thnx马特为你所有的帮助..将尽力.. – Wondering 2010-02-02 17:31:33

相关问题