jQuery domready

在jQuery里面,我们可以看到两种写法:

$(function(){
    //todo
})

$(document).ready(function(){
    //todo
})

这两个方法的效果都是一样的,都是在dom文档树加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完)。

window.onload是在dom文档树加载完和所有文件加载完之后执行一个函数。也就是说$(document).ready要比window.onload先执行。

模拟document添加一个ready函数:

document.ready = function (callback) {
            ///兼容FF,Google
            if (document.addEventListener) {
                document.addEventListener(‘DOMContentLoaded‘, function () {
                    document.removeEventListener(‘DOMContentLoaded‘, arguments.callee, false);
                    callback();
                }, false)
            }
             //兼容IE
            else if (document.attachEvent) {
                document.attachEvent(‘onreadytstatechange‘, function () {
                      if (document.readyState == "complete") {
                                document.detachEvent("onreadystatechange", arguments.callee);
                                callback();
                       }
                })
            }
            else if (document.lastChild == document.body) {
                callback();
            }
        }

document.ready这个函数是实现了。再来验证一下最上面所说的“ready要比onload先执行”

window.onload = function () {
      alert(‘onload‘);
};

document.ready(function () {
       alert(‘ready‘);
});
时间: 2024-08-24 15:49:06

jQuery domready的相关文章

使用requireJS的shim参数 解决插件 jquery.ui 等插件问题

没有requireJS框架之前,如果我们想使用jquery框架,会在HTML页面中通过<script>标签加载, 这个时候jquery框架生成全局变量$和jQuery等全局变量.如果项目中引用了requireJS框架,采用模块化的方式加载jquery,那么 jquery不会再添加全局变量$和 jQuery .现在问题来了,虽然jquery框架已经开始支持AMD规范,但是jquery的众多插件还是不支持AMD,仍然像以前一样需要使用全局变量$.jquery插件大多都是如下结构: (functio

使用requireJS的shim参数,完成jquery插件的加载

没有requireJS框架之前,如果我们想使用jquery框架,会在HTML页面中通过<script>标签加载,这个时候jquery框架生成全局变量$和jQuery等全局变量.如果项目中引用了requireJS框架,采用模块化的方式加载jquery,那么jquery不会再添加全局变量$和jQuery.现在问题来了,虽然jquery框架已经开始支持AMD规范,但是jquery的众多插件还是不支持AMD,仍然像以前一样需要使用全局变量$.jquery插件大多都是如下结构: (function( $

【转】require.js学习笔记(二)

require.js遵循AMD规范,通过define定义模块,require异步加载模块,一个js文件即一个模块. 一.模块加载require1.加载符合AMD规范模块 HTML: <script src="js/require.js" data-main="js/main"></script> MAIN.JS require.config({ baseUrl: "js/lib", paths: { "jquer

RequireJS 2.0 正式发布(转)

RequireJS发布了一个大版本,直接从version1.0.8升级到了2.0.随后的几小时James Burke又迅速的将版本调整为2.0.1,当然其配套的打包压缩工具r.js也同时升级到了2.0.1.此次变化较大,代码也进行了重构,层次更清晰可读.功能上主要变化如下: 1,延迟模块的执行. 这是一个很大变化,以前模块加载后factory立马执行.性能上肯定有一些损耗.2.0修改实现,再没人诟病AMD的模块是立即执行的.现在也可以等到require的时候才执行. 2,config增加了shi

requirejs中 shim

使用requireJS的shim参数,完成jquery插件的加载 时间 2014-10-31 13:59:10  CSDN博客 原文  http://blog.csdn.net/aitangyong/article/details/40653335 主题 jQueryRequireJS 没有requireJS框架之前,如果我们想使用jquery框架,会在HTML页面中通过<script>标签加载,这个时候jquery框架生成全局变量$和jQuery等全局变量.如果项目中引用了requireJS

RequireJS 2.0初探

就在前天晚上RequireJS发布了一个大版本,直接从version1.0.8升级到了2.0.随后的几小时James Burke又迅速的将版本调整为2.0.1,当然其配套的打包压缩工具r.js也同时升级到了2.0.1.此次变化较大,代码也进行了重构,层次更清晰可读.功能上主要变化如下: 1,延迟模块的执行. 这是一个很大变化,以前模块加载后factory立马执行.性能上肯定有一些损耗.2.0修改实现,再没人诟病AMD的模块是立即执行的.现在也可以等到require的时候才执行. 2,config

Require.JS 2.0

就在前天晚上RequireJS发布了一个大版本,直接从version1.0.8升级到了2.0.随后的几小时James Burke又迅速的将版本调整为2.0.1,当然其配套的打包压缩工具r.js也同时升级到了2.0.1.此次变化较大,代码也进行了重构,层次更清晰可读.功能上主要变化如下: 1,延迟模块的执行. 这是一个很大变化,以前模块加载后factory立马执行.性能上肯定有一些损耗.2.0修改实现,再没人诟病AMD的模块是立即执行的.现在也可以等到require的时候才执行. 2,config

RequireJS入门与进阶

RequireJS由James Burke创建,他也是AMD规范的创始人. RequireJS会让你以不同于往常的方式去写JavaScript.你将不再使用script标签在HTML中引入JS文件,以及不用通过script标签顺序去管理依赖关系. 当然也不会有阻塞(blocking)的情况发生.好,以一个简单示例开始. 新建一个目录,结构如下 目录r1下有index.html.jquery-1.7.2.js.main.js.require.js.require.js和jquery-1.7.2.j

RequireJS 2.0 正式发布

就在前天晚上RequireJS发布了一个大版本,直接从version1.0.8升级到了2.0.随后的几小时James Burke又迅速的将版本调整为2.0.1,当然其配套的打包压缩工具r.js也同时升级到了2.0.1.此次变化较大,代码也进行了重构,层次更清晰可读.功能上主要变化如下: 1,延迟模块的执行. 这是一个很大变化,以前模块加载后factory立马执行.性能上肯定有一些损耗.2.0修改实现,再没人诟病AMD的模块是立即执行的.现在也可以等到require的时候才执行. 2,config