转载: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() {})函数肯定会执行的。

转载:$(function() {}),即$(document).ready(function(),什么时候执行?以此为准,真理的更多相关文章

  1. $(window).load(function() {})和$(document).ready(function(){})的区别

    JavaScript 中的以下代码 : Window.onload = function (){// 代码 }  等价于  Jquery 代码如下: $(window).load(function ( ...

  2. JQuery $(function(){})和$(document).ready(function(){})

    document.ready和onload的区别——JavaScript文档加载完成事件页面加载完成有两种事件一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件)二是onload,指 ...

  3. $(function(){})和$(document).ready(function(){}) 的用法

    当文档载入完毕就执行,以下几种效果是等价的:1. $(function(){ //这个就是jQuery ready()的简写,即下2的简写 // do something }); 2. $(docum ...

  4. $(function(){})和$(document).ready(function(){})

    document.ready和onload的区别——JavaScript文档加载完成事件 页面加载完成有两种事件 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件) 二是onloa ...

  5. 转:jquery的$(function(){})和$(document).ready(function(){}) 的区别

    原文链接:https://www.cnblogs.com/slyzly/articles/7809935.html [转载]jquery的$(function(){})和$(document).rea ...

  6. $(function(){}) ,$(document).ready(function(){}),window.onload = function(){...},$(window).load(function(){...})区别

    1. 写法:      $(function(){}) ,$(document).ready(function(){})是一样的 2. 时间: window.onload和$(window).load ...

  7. jQuery——$(function(){});与$(document).ready(function(){});的区别

    只要在我们的jsp页面中写上 <script> $(function(){ //内容 }); </script> 则,函数中的内容就会在jsp页面被载入的时候就被执行,实际上, ...

  8. 比较body.onload(function())、$(document).ready(function())与$(windows).load(function)

    原理对比: body.onload(function())是优先将document的DOM渲染,即将页面所有的元素(包括html标签以及所引用到的图片,flash媒体等媒体文件)加载完成,然后再执行页 ...

  9. Onload,Onunload,onbeforeunload,$(window).load(function() {})和$(document).ready(function(){})

    Onload,$(window).load(function() {}):元素都加载完毕,才可以执行. $(document).ready(function(){}):不一定要等所有的js和图片加载完 ...

  10. $(function(){})与$(document).ready(function(){})

    $(function(){ //jq ready()的简写 }); $(document).ready(function(){ // }); 或者: $().ready(function(){ //j ...

随机推荐

  1. python使用sqlite

    摘自python帮助文档 一.基本用法 import sqlite3 conn = sqlite3.connect('example.db')#conn = sqlite3.connect(':mem ...

  2. 程序员"装B"手册

    一.准备工作 “工欲善其事必先利其器.” 1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好.一个用来查资料,一个用来写代码.总之要显得信息量很大,效率很高. 2.椅子不一定要 ...

  3. springmvc+mybatis 构建cms+UC浏览器文章功能

    最近公司在模拟UC浏览器做一个简单的cms系统,主要针对于企业内部的文章浏览需求,这边考虑用户大多用mobile浏览文章内容,故使用原生的ios和android进行开发,后面也会集成html5. 1. ...

  4. magento中根据用户的id获取用户的所有订单以及每个订单中的物品 以及物品的相关属性

    本篇文章是对于已经有了magento基础的人而言,在某个模块的额controller中写任意一个函数. public function goodbyeAction() { for ($customer ...

  5. ui设计用什么软件

    Ui设计用什么软件?作为ui设计师,你必须要熟练的使用以下几款设计软件,不然可能也无法胜任ui设计师的职位. ui设计除了要学习一些基本的操作软件,如PS AI AE AXURE 以外呢,还要学习比如 ...

  6. Java界面编程—API

    Java 的 GUI 提供的对象都存在 java.awt 和 java.swing 两个包中. awt :Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能 ...

  7. include 指令和 include 动作引入 jsp 页面时中文乱码

    include指令:<%@ include file="new.jsp" %> include动作:<jsp:include page="new.jsp ...

  8. PHP ini 配置无效的坑给自己记录

    装redis 扩展时,发现装成功之后扩展一直加载不上, 于是phpinfo 发现Configuration File (php.ini) Path:none Loaded Configuration ...

  9. 初学者问题一oracle

    问:(待解决)如何将纵向表改成横向表?       (待解决)如何实现对大型数据范围差距不大的索引?(建什么索引树)

  10. PHP删除空格函数

    删除空格或其他字符的相关函数 ltrim函数 描述:实现删除字符串开始位置的空格或其他字符 语法:string ltrim(string $str [,string $charlist]) 说明:ch ...