怎样用原生JS实现jQuery的ready方法

 我来答
懂点君
高粉答主

2017-11-10 · 分享各种知识,从此让你多懂点,少吃亏!
懂点君
采纳数:197 获赞数:4794

向TA提问 私信TA
展开全部
function ready(fn){
    if(document.addEventListener) {
        document.addEventListener('DOMContentLoaded', function() {
            //注销事件, 避免反复触发
            document.removeEventListener('DOMContentLoaded',arguments.callee, false);
            fn();            //执行函数
        }, false);
    }else if(document.attachEvent) {        //IE
        document.attachEvent('onreadystatechange', function() {
            if(document.readyState == 'complete') {
                document.detachEvent('onreadystatechange', arguments.callee);
                fn();        //函数执行
            }
        });
    }
};

相关知识

浏览器加载页面的顺序:

  1. 解析HTML结构

  2. 加载外部脚本和样式表文件

  3. 解析并执行脚本代码

  4. 构造HTML DOM模型==ready()

  5. 加载图片等组件

  6. 页面加载完毕==onload()

ready事件是在DOM模型构造完毕时触发

load事件是在页面加载完毕后触发

小熙ps
2018-06-27 · 知道合伙人软件行家
小熙ps
知道合伙人软件行家
采纳数:966 获赞数:9282
毕业于湖南信息职业技术学院,专业计算机网络技术,在IT领域已经专注3年,对各种IT行业都有所了解 。

向TA提问 私信TA
展开全部
  Load事件是在页面加载完毕后触发;ready事件是在DOM模型构造完毕,加载外部文件前触发;
  JQuery的ready事件实际上是对IE的readystatechange事件和DOM的DOMContentLoaded事件进行封装,这两事件都是在DOM树结构下载并解析完毕后触发。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式