请问页面里的$(document).ready是自己写的还是固定的?

sdlyczl 2009-11-12 08:55:01
$(document).ready
(
function()
{
}
);
看到一个页面里的这种结构,不知道是页面自己写的还是javascript规定的?
...全文
3765 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
58MiN 2010-11-02
  • 打赏
  • 举报
回复
$(document).ready(function(){
----------
});
这些事需要自己加的,目的是为了加载当前页面,只需要记住就行了,每次用的时候套在最外层十有八九没错
58MiN 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sdlyczl 的回复:]
dom是什么东东?图片属于不属于dom?
记得以前查过dom,不过没有理解
[/Quote]
Dom:英文全称-Document Object Model 译成中文即是:文档对像模型.听起来很术语,其实就是文档内容的结构关系.文档类型可以是HTML或XML
Dom具有对Html文件和XML文件元素的访问控制能力,简单点说利用Dom可以对某个html或xml文件添加,修改,删除元素.更改其现有的结构或内容.
如果你未接触过Dom,你会发现Dom太神奇了...不管你是菜鸟还是高手,在这个注重用户体验的web设计时代里,Dom是至关重要的. 如果你是一名有经验的web设计者,你应该看到过或用过以下这些命令或方法 getElementById getElementsByTagName offsetParent appendChild getAttribute  不过至今仍有人认为这些都是JavaScript中的东西,其实不然,这些全是Dom中很重要的方法!
浴火_凤凰 2009-11-12
  • 打赏
  • 举报
回复
一句话:是自定义的,不是javascript规定的
Click_Me 2009-11-12
  • 打赏
  • 举报
回复

这版 没有JQ的好 但思想就是这样子 可以实现ready

var $ready = function(f){
// 如果Dom加载完毕 那么就直接执行函数
if($ready.done) return f();
// 如果已经绑定了一个函数
if($ready.timer){
// 将下个函数排队
$ready.ready.push(f);
}else{
// 由于firefox的缓存优化有可能onload早于dom加载完毕
window.onload = $isReady;
// 将函数保存起来
$ready.ready = [f];
// 不断的通过$isReady函数去判断是否加载完毕
$ready.timer = setInterval($isReady, 13);
}
};

var $isReady = function(){
// 如果已经完毕 则返回即可
if($ready.done) return false;
// 通过几个元素特性 不断判断document等是否完全加载完毕
if(document && document.getElementsByTagName && document.getElementById
&& document.body){
// 如果完毕. 停止检测时钟. 清空变量 循环执行函数 将done标志置为完毕
clearInterval($ready.timer);
$ready.timer = null;
for(var i = 0; i < $ready.ready.length; i++){
$ready.ready[i]();
}
$ready.ready = null;
$ready.done = true;
}
};

// 使用方法
$ready(function(){
alert('dom is onload');
// DOM已经确保加载完毕,可以进行相关操作
});


sdlyczl 2009-11-12
  • 打赏
  • 举报
回复
dom是什么东东?图片属于不属于dom?
记得以前查过dom,不过没有理解
Click_Me 2009-11-12
  • 打赏
  • 举报
回复

而 你说的 相当于把script放到body后面 却是有问题的...
现在FF 浏览器 也实现了 缓存机制 所有其实window.onload 有可能更先去执行的
Click_Me 2009-11-12
  • 打赏
  • 举报
回复

回楼上的 这个我当然知道 我只是告诉楼主 可以当做原生的onload用
domReady的实现方式很多
也可以用
document && document.getElementsByTagName && document.getElementById && document.body
用setInterval 去不断探取 一样可以达到domReady的效果

并不是就JQ 那么一种方案
sohighthesky 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 sdlyczl 的回复:]
$(document).ready
(
  function()
  {
  }
);
看到一个页面里的这种结构,不知道是页面自己写的还是javascript规定的?

[/Quote]
放在ready里确保dom加载完毕可以才能正确的查找页面中的元素
sohighthesky 2009-11-12
  • 打赏
  • 举报
回复
window.onload会等所有的图片加载完毕才会调用
sohighthesky 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 click_me 的回复:]
JScript code
$(document).ready 是Jquery框架里的东西 代替原生javascript的 window.onload事件用
[/Quote]
这个不太对,$.ready作用,是dom加载完毕,相当于把script方法放到body后面,
其实现为:

var ready=function(readyCall) {
if(document.addEventListener)
document.addEventListener("DOMContentLoaded",function() {
document.removeEventListener("DOMContentLoaded",arguments.callee,false);
readyCall();
},false);
else if(document.attachEvent) {//for IE
if(document.documentElement.doScroll && window.self==window.top) {
(function() {
try {
document.documentElement.doScroll("left");
}catch(ex) {
setTimeout(arguments.callee,5);
return;
}
readyCall();
})();
}else {//maybe late but also for iframes
document.attachEvent("onreadystatechange",function() {
if(document.readyState==="complete") {
document.detachEvent("onreadystatechange", arguments.callee);
readyCall();
}
});
}
}
}
Click_Me 2009-11-12
  • 打赏
  • 举报
回复

$(document).ready 是Jquery框架里的东西 代替原生javascript的 window.onload事件用

87,925

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧