嵌套 $(document).ready() 和 $(window).load() 事件之间的区别

2024-04-02

我知道这些状态之间的基本区别,但我们的一个项目出现了一个奇怪的问题

jQuery(document).ready(function () {
   console.log('Dom is ready');
   jQuery(document).ready(function () {
       console.log('Inner Dom ready');
   });
});

结果 :-

Dom is ready
Inner Dom ready

现在,无论什么时候,只要我打电话,都可以document.ready(),它执行它的处理程序。

但如果你看看这个

jQuery(window).load(function () {
    console.log('Window Loaded');
    jQuery(window).load(function () {
        console.log('Inner window load');
    });
});

结果 :-

Window Loaded

为什么内部窗口加载永远不会执行其处理程序,即使窗口已经加载。

感谢您的评论和回答,但我只是想知道它们内部是如何工作的,我同意 jQuery(window).load() 事件仅触发一次,因此没有机会执行任何其他加载事件处理程序,那么为什么这个规则是不适用于 jQuery(document).ready()。它是否设置某种标志或其他东西并在我们每次调用它时进行检查。


$(document).ready()当 HTML 文档加载且 DOM 准备就绪时执行。如此内在ready()调用是因为 DOM 已经准备好。ready()仅检查当前状态而不与先前状态进行比较。所以条件是这样的

if state=="ready" then invoke latest $(document).ready();

此条件适用于所有级别ready() method.

BUT

$(window).load()当整个页面完全加载时执行,包括所有框架、对象和图像。简单来说,load()当状态从另一个状态更改为已加载状态时执行。第一的load()当状态从另一个状态加载时执行,但内部load()未检测到并且状态发生变化,因此不会执行。

if (is_state_changed=true AND current_state=="ready" AND current_state !== previous_state) then invoke latest $(window).load();

上述条件适用于第一个/外部load(),但对于内部则不然load()因为内部的状态没有改变(它保持不变)load()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌套 $(document).ready() 和 $(window).load() 事件之间的区别 的相关文章

随机推荐

  • 比较两个字符串或对象并获取差异

    我想在我的网站上实现一种版本历史记录 并且我需要一种比较字符串或对象键的方法 例如 原始字符串 对象键 更快的棕色狐狸 修改后的字符串 对象键 The Quick Brown Fox 跳过了那只懒兔子 修订 添加跳过了那只懒兔子已删除er
  • Rails form_tag 表单编写 - 带非活动记录模型

    我是 Rails 的新手 我正在编写一个 couchrest rails 应用程序 因此我没有为此模型使用 activerecord 我刚刚发现这意味着 form for model 行不通的 我正在尝试弄清楚如何使用 form tag 但
  • Win32:如何使用CreateWindowExW()函数创建ListBox控件?

    我浏览过多个站点 文档和教程 他们都说相同 即任何控件都只不过是 Win32 API 中的一个窗口 因此可以使用CreateWindowExW 函数来创建一个ListBox主应用程序窗口上的控件 窗口 虽然我明白所有控件都是具有不同窗口的概
  • 将向量转换为逻辑矩阵

    是否有一个原生 R 函数可以接受输入向量并返回相应的二进制矩阵 其中该矩阵的列数与输入向量中的唯一值相同 例如 给定x lt 1 3 我想返回以下矩阵 1 2 3 1 1 0 0 2 0 1 0 3 0 0 1 功能contrasts接近了
  • Python解包线程安全吗?

    是一个类似的操作x y self mytuplePython 中的原子 或者可以self mytuple在分配期间被另一个线程修改 导致 x 引用 self mytuple 的第一个版本 而 y 引用第二个版本 我正在使用Python 3
  • Xamarin 部署不适用于 Android

    我已经设置了一个newXamarin Forms 项目 我想构建它并将其部署到模拟器或 Android 设备 但它不起作用 在Visual Studio的Output窗口中 显示以下错误 应用程序无法启动 确保应用程序具有 已安装到目标设备
  • Maven 资源插件复制文件

    我目前有一些 Maven 项目 当我安装项目时 我需要将所有文件从 conf 文件夹复制到目标文件夹 Project src conf lt FROM HERE gt lib target lt TO HERE gt 我在 pom xml
  • console.log() 已定义但未登录 IE - 空控制台

    Internet Explorer 8 和 9 中页面上的 Javascript打开开发者工具达到console log 其定义为 but 实际日志中没有出现任何内容 尝试过的事情 仔细检查alert s that console被定义并且
  • 如何使从天蓝色广告收到的 Jwt 令牌无效

    我有 2 个应用程序 一个是 Spring Boot 另一个是 Angular 目前 我已将我的应用程序与 azure ad 集成 从而通过它进行身份验证 现在的问题是 当用户从前端应用程序注销时 如果令牌未过期 如何使Azure AD提供
  • 卡夫卡保留政策

    假设我有一个多代理 在同一主机上运行 Kafka 设置 其中包含 3 个代理和 50 个主题 每个主题配置为具有 7 个分区和 3 的复制因子 我有 50GB 内存可用于 kafka 并确保 Kafka 日志永远不会超过此内存量 因此我想配
  • 在子控制器中查看控制器框架大小

    我正在实施 UIViewcontroller 遏制 在下面的示例中 我在根控制器中设置了子控制器的帧大小 子视图显示为我设置的大小 但是当我检查它在 container1 内的边界时 它报告的大小与我设置的大小不同 根控制器 容器 void
  • MySQL 排序规则:utf8mb4_unicode_ci 与“utf8mb4 - 默认排序规则”

    请帮助我理解 MySQL Workbench 中列出的排序规则之间的差异 utf8mb4 unicode ci vs utf8mb4 default collation 附注大家都推荐使用utf8mb4 unicode ci 如果这如此受欢
  • 如何使用Python读取文件夹中的文件数量?

    如何使用Python读取特定文件夹中的文件数量 示例代码会很棒 要非递归地计算文件和目录 您可以使用os listdir http docs python org library os html os listdir并取其长度 要递归计算文
  • jstree选择节点

    问候 我正在使用 jsTree 生成分层数据 JsTree生成如下 function industries tree data type json opts url Admin GetIndustries 它可以找到并且 jsonresul
  • 在phonegap应用程序中导出sqlite数据库

    我们有一个使用 cordova phonegap 和他自己的 sqlite DB 的应用程序 我的意思是我们没有安装外部 sqlite 我们需要将数据库备份到 SD 内存中 但将 sqlite 文件从 PhoneGap 导出到 SD 时遇到
  • 在 Code::Blocks 中构建 wxWidgets 程序

    我正在尝试建立这个wxWidgets示例程序 http www wxwidgets org docs tutorials hworld2 txt使用 Code Blocks 12 11 但无论我尝试什么 构建都会失败 例如 构建日志显示以下
  • Flutter:等待 async void 方法

    我有一个写入文件系统的异步保存方法 返回类型为void 我想在保存完成后立即更新用户界面 通常我会使用 then 方法来做到这一点 但它不适用于 void 返回类型 那么 当保存完成后 我如何才能收到通知呢 void save Folder
  • 如何将 MouseListener 添加到 JList 项目?

    所以 我想要的是当JList选择项目后 将运行另一段代码 但我的问题是 我该如何实施MouseListeners对于具体的JList items 这是我的代码 public void launchFrame String selection
  • Python三元运算符不能返回多个值?

    我知道有些人不赞成这种做法 但我喜欢使用 Python 的三元运算符 因为它使操作变得简单if else陈述读起来更清晰 我认为 无论如何 我发现我不能这样做 gt gt gt a b 1 2 if True else 0 0 Traceb
  • 嵌套 $(document).ready() 和 $(window).load() 事件之间的区别

    我知道这些状态之间的基本区别 但我们的一个项目出现了一个奇怪的问题 jQuery document ready function console log Dom is ready jQuery document ready function