当前位置:首页 > JavaScript

js 实现ready

2026-02-02 10:43:17JavaScript

js 实现ready

js 实现ready

实现 JavaScript 的 ready 事件

在 JavaScript 中,ready 事件通常用于在 DOM 完全加载后执行代码,而不需要等待图片或其他资源加载完成。以下是几种常见的实现方法:

使用 DOMContentLoaded 事件

document.addEventListener('DOMContentLoaded', function() {
    // 在这里编写 DOM 加载完成后执行的代码
});

兼容旧版浏览器的实现

function ready(fn) {
    if (document.readyState !== 'loading') {
        fn();
    } else {
        document.addEventListener('DOMContentLoaded', fn);
    }
}

ready(function() {
    // 在这里编写 DOM 加载完成后执行的代码
});

jQuery 风格的实现

(function(win, doc) {
    var ready = function(fn) {
        if (doc.readyState === 'complete') {
            return fn();
        }

        doc.addEventListener('DOMContentLoaded', fn, false);
        win.addEventListener('load', fn, false);
    };

    win.ready = ready;
})(window, document);

ready(function() {
    // 在这里编写 DOM 加载完成后执行的代码
});

支持多次调用的实现

var readyCallbacks = [];
var isReady = false;

function ready(fn) {
    if (isReady) {
        fn();
    } else {
        readyCallbacks.push(fn);
    }
}

document.addEventListener('DOMContentLoaded', function() {
    isReady = true;
    readyCallbacks.forEach(function(fn) {
        fn();
    });
    readyCallbacks = [];
});

ready(function() {
    // 第一次调用
});

ready(function() {
    // 第二次调用
});

这些方法都可以实现类似 jQuery $(document).ready() 的功能,选择哪种方法取决于项目的具体需求和浏览器兼容性要求。

标签: jsready
分享给朋友:

相关文章

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…