我最近注意到有时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会在doms准备就绪后立即执行,window.load会等到页面上的所有内容都准备就绪?或者这是来自HTML5的更多错误?
问题是:我错过了什么或只是误解了什么?
编辑:特别是Chromium。我在Ubuntu,所以如果它是铬虫我不会感到惊讶。
答案 0 :(得分:0)
请注意,如果你有一个非常复杂的html结构,它可能会延迟dom准备好的时间。浏览器可能会尝试尽可能快地呈现页面,并且使用非常复杂的页面,渲染可能会开始并且domready事件将触发,但浏览器将在您设置的特定代码之前快速呈现内容被触发了。
jQuery domready中的一个块尽可能快地发生,但如果你放,请说:
setTimeout(function(){$()。ready(function(){alert('finally');});},9000);
“尽可能快”仍然会受到代码发生位置的限制,在这种情况下是在9秒超时之后。