$(document).ready 相当于没有 jQuery

2023-12-05

我有一个使用的脚本$(document).ready,但它不使用 jQuery 中的任何其他内容。我想通过删除 jQuery 依赖来减轻它的负担。

我怎样才能实现我自己的$(document).ready不使用 jQuery 的功能?我知道使用window.onload不会相同,因为window.onload在加载所有图像、帧等后触发。


有一个基于标准的替代品,DOMContentLoaded这是由超过支持99%的浏览器,虽然不是 IE8:

document.addEventListener("DOMContentLoaded", function(event) { 
  //do work
});

jQuery 的本机函数比 window.onload 复杂得多,如下所示。

function bindReady(){
    if ( readyBound ) return;
    readyBound = true;

    // Mozilla, Opera and webkit nightlies currently support this event
    if ( document.addEventListener ) {
        // Use the handy event callback
        document.addEventListener( "DOMContentLoaded", function(){
            document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
            jQuery.ready();
        }, false );

    // If IE event model is used
    } else if ( document.attachEvent ) {
        // ensure firing before onload,
        // maybe late but safe also for iframes
        document.attachEvent("onreadystatechange", function(){
            if ( document.readyState === "complete" ) {
                document.detachEvent( "onreadystatechange", arguments.callee );
                jQuery.ready();
            }
        });

        // If IE and not an iframe
        // continually check to see if the document is ready
        if ( document.documentElement.doScroll && window == window.top ) (function(){
            if ( jQuery.isReady ) return;

            try {
                // If IE is used, use the trick by Diego Perini
                // http://javascript.nwbox.com/IEContentLoaded/
                document.documentElement.doScroll("left");
            } catch( error ) {
                setTimeout( arguments.callee, 0 );
                return;
            }

            // and execute any waiting functions
            jQuery.ready();
        })();
    }

    // A fallback to window.onload, that will always work
    jQuery.event.add( window, "load", jQuery.ready );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

$(document).ready 相当于没有 jQuery 的相关文章

随机推荐

  • 创建一个快捷方式,并将参数添加到程序路径中

    这是代码 如果我右键单击新的 Lnk 并删除引号 它就可以工作 from C Windows System32 control exe name Microsoft Windowsupdate to C Windows System32 c
  • 纯 Ajax 请求和传统 Ajax 请求是否可以在本机/混合移动应用程序上实现?

    我知道使用 JSONP 技术http en wikipedia org wiki JSONP我们可以做一个跨域的 Ajax 请求 但对于这个问题来说 这并不算 纯粹和传统 我只是想知道本机 混合应用程序是否也适用 同源策略 http en
  • Clearcase:如何将特定文件从一个视图合并到另一个视图中,以避免出现“邪恶双胞胎”场景?

    我有一个文件需要放入不同的分支 我如何从命令行执行此操作 一切似乎都适合合并 其中文件已经存在于两个分支中 您必须先合并父目录 以便文件显示在目标分支的目录中 此时 新文件的大小将为零 然后您可以合并文件本身 执行这两项操作的最简单方法是通
  • 通过局域网连接到 Visual Studio 调试 IIS Express 服务器

    我有一个在 VS2012 中开发的测试 ASP NET MVC3 应用程序 当我开始调试时 通过请求从主机访问应用程序http localhost
  • 向量排序/唯一/擦除与复制到 unordered_set 的性能

    我有一个函数 可以将网格中点列表的所有邻居获取到一定距离 这涉及大量重复项 我邻居的邻居又 我 我一直在尝试几种不同的解决方案 但我不知道哪种更有效 下面是一些代码 演示了两种并行运行的解决方案 一种使用 std vector sort u
  • 为什么 Spark DataFrame 创建错误数量的分区?

    我有一个包含 2 列的 Spark 数据框 col1 and col2 scala gt val df List 1 a toDF col1 col2 df org apache spark sql DataFrame col1 int c
  • 在 Velocity 模板中使用动态变量

    我正在使用速度模板生成电子邮件模板 在这里我想为每个 标签 创建表 并将相应的值作为表数据 我正在传递一个列表标签 其中包含标签的详细信息 包括 tagName 我使用它为每个标签传递相应的列表 如果 tagName test 我将测试表的
  • Java 邮件初始访问检查失败

    我正在使用 Java Mail API 我收到这个奇怪的错误 初始访问检查失败 我的配置看起来不错 URL 用户 密码等 只是不明白为什么会出现此消息 550 5 7 1 Initial access check failure DEBUG
  • java没有执行系统命令

    在下面的程序中 我将名称指定为 don 因此该命令将搜索活动目录 所有的名字都以don开头 如唐纳德等 但是 line2 变量在从 reader 对象赋值后变为 null 并且它永远不会进入循环 我究竟做错了什么 仅供参考 当我在命令行上给
  • XML/HTML 标签中是否允许有空格?

    我知道如何在 XML 和 HTML 的文本节点中处理空格 但我不确定标记元素本身内部的空格 显然 标签内部使用空格来分隔属性 但是在 之前有空格是否有效 例如 lt foo gt lt foo gt Or even
  • 如何获取集合中的随机范围数

    我有 100 条记录 1 gt 100 我想在其中随机获取 50 条记录 在 java 中该怎么做 谢谢 Set
  • 传递与参数类型不同的类型

    如果我有一个变量a声明者A a和一个方法m with void m B b 有什么办法可以调用m a 会工作 或者这永远不会起作用 因为a属于类型A and b类型的B If A延伸B 它可以作为参数传递给该函数 如果没有并且A包含适合的值
  • Android 杀死了小米、华为等公司的后台服务

    我需要让我的服务势不可挡 我尝试在启动命令上返回 START STICKY 它在模拟器上运行良好 但是 当从我的设备 小米 mi5s Android 7 上的任务管理器中删除该应用程序时 它不会再次创建自身 Override public
  • C++ - 数组是指针吗? [复制]

    这个问题在这里已经有答案了 可能的重复 C 指针和数组的区别 Is an array in C a pointer 你能澄清一下吗 Thanks 不 但只要您需要它 它就可以衰减为指针 void foo1 char c int main c
  • getFilesDir() 导致空指针异常

    我正处于学习 Java 的早期阶段 但希望有人能解释我在这里做错了什么 大量的谷歌搜索让我头晕目眩 我一直在关注一个教程 该教程展示了如何将 ArrayList 保存到文本文件 然后获取详细信息 我收到以下错误 01 10 19 00 37
  • 分析句子的意思

    有没有什么工具可以分析给定句子的含义 非常感谢您的建议 提前致谢 我也在寻找类似的工具 我最近发现的一件事是这样的sentiment analysis由斯坦福大学的研究人员开发的工具 它提供了分析给定句子的情感的模型 这很有趣 即使这个看似
  • OS X 软件包安装问题:找不到 gfortran 4.8 来构建软件包

    我在使用 Xcode 7 的 mac os x El Capitan 上遇到问题 我使用的是 fortran 6 1 从以下位置下载https gcc gnu org wiki GFortranBinaries 我尝试降级到 fortran
  • 更改 R 中 3d 图中轴标题和标签的方向?

    我有一个问题对于 R 绘图专家来说可能很容易 我需要在R中绘制3D图 我的数据如下 df lt data frame a1 c 489 4 505 8 525 8 550 2 576 6 a2 c 197 8 301 389 8 502 5
  • 如果任务尚未开始,调用Task.wait可能不会等待?

    我正在阅读 Jeffrey Richter 的 clr via c 书 读到任务等待可能并不总是等待时感到不舒服 我引用 当一个线程调用Wait方法时 系统会检查Task是否 线程正在等待的线程已开始执行 如果有的话 那么 调用 Wait
  • $(document).ready 相当于没有 jQuery

    我有一个使用的脚本 document ready 但它不使用 jQuery 中的任何其他内容 我想通过删除 jQuery 依赖来减轻它的负担 我怎样才能实现我自己的 document ready不使用 jQuery 的功能 我知道使用win