zoukankan      html  css  js  c++  java
  • 转载:$(function() {}),即$(document).ready(function(),什么时候执行?以此为准,真理

    转载:https://blog.csdn.net/Ideality_hunter/article/details/77935656

    $(function() {

    //执行操作

    });

    $(function() {}) 是$(document).ready(function()的简写。

    这个函数什么时候执行的呢?

    答案:DOM加载完毕之后执行。

    DOM是什么?DOM就是一个html页面的标签树,树,树。

     

    那么什么时候,DOM加载完成了呢?即页面所有的html标签(包括图片等)都加载完了,即浏览器已经响应完了,加载完了,全部展现到浏览器界面上了。

    那么有个问题,举个例子:

    <html>

    <head>

    <script src="http://127.0.0.1:8080/testProject/js/test.js" type="text/javascript"></script>

    </head>

    <body>

    ···

    ···

    <botton onclick="AlertNewPage()"></botton>

    </body>

    </html>

    test.js中有个AlertNewPage方法,作用是在当前页面上弹出一个新的页面(其实相对f12来看,其实还是一个html页面,只是在原来DOM树的基础上,增加了一些div而已),效果如下:

    test.js如下:

    function AlertNewPage(){

    ...;//略。显示新增页面。

    $.getScript("http://127.0.0.1:8080/testProject/js/test2.js", function() {//发起了一个js的动态加载,即加载test2.js到内存中
            })

    }

    而test2.js中有个$(function() {})函数,test2.js如下:

    $(function() {
     ···//给保存按钮,增加onclick事件

    })

    问,test2.js中的代码,会被运行吗(即保存按钮的onclick事件这段代码,会运行吗)?

    答:此时DOM早已经加载完了,当然可以执行。

    ===========此前一篇文章,如果和这里理解不一样,以此篇文章为准,因为当时对js加载入内存一无所知。

    http://blog.csdn.net/ideality_hunter/article/details/72956659

    ======

    总结:

    DOM在第一次页面加载完毕后,就在内存里了,无论后面怎么通过ajax的方式去局部修改html页面,都只是对内存中的DOM树进行修改,而DOM在第一次页面加载完毕后就已经加载完毕了。所以后面js文件(动态加载或者head中加载)再使用到$(function() {})函数肯定会执行的。

  • 相关阅读:
    C语言文件操作
    scrapy 提取XML文档
    汇编指令和寄存器
    C语言知识点
    sqlalchemy 的sqlite多线程设置
    Unity 打AssetBundle和加载方案
    unity 4种实现动态障碍方法
    入心诗词记
    人间问答
    生活中有哪些实用的心理学知识?
  • 原文地址:https://www.cnblogs.com/zp-uestc/p/10174399.html
Copyright © 2011-2022 走看看