Javascript JQuery domready和WindowReady是否可以随机工作?

Javascript JQuery domready和WindowReady是否可以随机工作?,javascript,jquery,domready,Javascript,Jquery,Domready,我最近注意到domready和window.load有时不起作用。这就像进入页面时随机工作,或者刷新 假设我有: $(function(){ $('.hide').hide(); // disable html5 native validation to let jquery handle $('form').attr('novalidate','novalidate'); }); $(window).load(function(){ $('.input').click(fu

我最近注意到domready和window.load有时不起作用。这就像进入页面时随机工作,或者刷新

假设我有:

$(function(){
  $('.hide').hide();
  // disable html5 native validation to let jquery handle 
  $('form').attr('novalidate','novalidate');
});

$(window).load(function(){
  $('.input').click(function(){
      $(this).animate({opacity:0.8});
  }).blur(function(){
      $(this).animate({opacity:1});
  });
});
有时,当我加载页面时,元素没有隐藏,有时是,输入字段将动画化,有时不是,并且两者不必一起失败。如果我刷新页面几次,它就会工作

我一直认为domready会在dom准备好后立即执行,window.load会等到页面上的所有内容都准备好后再执行吗?或者这是来自HTML5的更多bug

问题是:我是遗漏了什么还是只是误解了什么


编辑:特别是铬。我在Ubuntu上,所以如果它是一个chromium bug,我不会感到惊讶。

请注意,如果您有一个非常复杂的html结构,它可能会延迟dom准备就绪的时间。浏览器可能会尽可能快地呈现页面,对于一个非常复杂的页面,可能会开始呈现并触发domready事件,但浏览器会在触发您设置的特定代码之前快速呈现内容

jQuery domready中的块以尽可能快的速度发生,但如果您将

setTimeout(function(){$().ready(function(){alert('finally');});},9000)


“尽可能快”仍然会受到代码发生位置的限制,在这种情况下是在9秒超时之后。

我知道这并不能回答您的问题,但我不知道您为什么在一个位置使用
$(function(){…
(domready)和
$(window)。load…
(window load)在另一个地方。难道你不能用domready实现同样的功能,因为你不需要等待图像加载吗?
blue
做什么?它是一个自定义的jQuery函数吗?@marcosfromero:我确实在一些页面上加载了图像,但这是一个简单的示例来演示我的设置,如果它是HTML5的问题,或者只是chromium本身有一个有争议。另外,你在说什么蓝色?我不记得我的代码中有蓝色的地方。为什么它会是HTML5的bug?唯一可靠支持加载事件的元素是body和iframe。jQuery根据它认为可用的内容孵化自己的DOM就绪事件。我不会将两者混合。特别是,不要依赖HTML5-它不是标准和支持是混合的。重要的事情要坚持使用HTML4.01和DOM 0/1/2/3。仔细使用HTML5功能,进行功能测试和适当的回退。不是每个人都在使用最新的Chrome浏览器或其他任何东西。@RobG:我想你是对的。我去采集Extension的,发现google voice插件正在干扰它如果插件已登录,它会尝试在页面上查找干扰jquery的domready的电话号码。