1. 在哪书写js文件

如果我们要执行一段js代码,我们该怎么办呢?

1.我们可以写一个js文件,在js文件里写执行函数,然后再<script src='...'> ... </script>,进行引用;

2.我们可以直接在HTML页面下,插入脚本,同样是<script src='...'> ... </script>,两种方式没什么区别,唯一的区别就是程序的解耦,所以当我们执行的js代码不太多时候,我推荐在HTML页面下直接书写,反则...。

2. $(function(){}); 其实是一个简写,它等同于 jquery 的 $(document).ready(function(){})。

我们知道HTML页面在JavaScript里面有BOM对象和DOM对象,BOM是浏览器对象模型,用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等。
DOM是文档对象模型,用来获取或设置文档中标签的属性,例如获取或者设置input表单的value值。
BOM的内容不多,主要还是DOM。

同样的,我们可以用Jquery来操作BOM和DOM,这儿就引出了本文主旨:$(document).ready(function(){})

现在我们开始执行js文件,但这样有个问题,就是对于某些浏览器来说,如果其中的代码涉及到某个 dom 节点的位置在这段代码之后的话就可能会失败。原因是代码在 html 文档的前面,浏览器读到它的时候就执行了,而 dom 节点在它后面浏览器还没读取到呢,所以不知道怎样去操作这个节点,于是报错了。你会说为什么不等到所有节点都读取完了再回头执行 js 代码呢?关键是有些代码就是想在页面出来一部分时就执行了啊。所以对于那些在页面读取完才执行的代码通常会放到 onload 中去。但 onload 又有自己的问题,比如 onload 的 window 的还有 body 的,执行的时机很是不好确定。于是 jquery 推出了 $(document).ready(function(){}) 它的设计目标有以下几个(可看作 jquery 的 ready 函数与 js 的 onload 的区别):

1.执行时间

window.onload 必须等到页面内包括图片的所有元素加载完毕后才能执行;

$(document).ready() 是 dom 结构绘制完毕后就执行,不必等到加载完毕。

2.编写个数不同

window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个

$(document).ready()可以同时编写多个,并且都可以得到执行。

特别是第二点,大大的方便了代码初始化的分离操作(解耦),确实是 jquery 对开发人员的巨大贡献。否则各个代码块中都要自己想办法在初始化函数中加入自己的那一部分,会相当的混乱。

另外传统是 onload 是这样写的:

<body onload="fn1(),fn2()"></body>

而我们提到的 $(document).ready() 是 dom 解析完成后,不用等待图片等资源加载即可开始执行了,那么要等待的话怎么办呢?难道要写上面那种传统的代码吗?当然不是,jquery 中是使用 $(window).load(function()。例如:

$(window).load(function() {alert("hello,我是jQuery!");});

而且这个函数同样可以写多个,它们之间同样不会覆盖。会依次顺序执行

Jquery中$(function(){})的更多相关文章

  1. jQuery中的end()

    要说end(),我们就不得不说prevObject. 在jQuery中,每个jQuery对象都有一个prevObject属性 var $p = $('p'); 这个属性是做什么的呢? jQuery内部 ...

  2. jQuery中$(function(){})与(function($){})(jQuery)的区别

    首先,这两个函数都是在页面载入后执行的函数,其中两者的区别在于: 在jQuery中$(function(){})等同于jQuery(function(){}),另一个写法为jQuery(documen ...

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

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

  4. window.onload和JQuery中$(function(){})的区别即其实现原理

    一.区别 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. 在Jquery中$(function(){ })和$(document).ready(function(){ ...

  5. JQuery中的each()的使用

    each()函数是基本上所有的框架都提供了的一个工具类函数,通过它,你可以遍历对象.数组的属性值并进行处理. jQuery和jQuery对象都实现了该方法,对于jQuery对象,只是把each方法简单 ...

  6. 使用原生javascript实现jquery的$(function(){ })

    在使用jquery的时候,经常用到$(function(){})方法或者是$(document).read(function(){})来作为页面dom节点加载完成之后javascript的执行入口,现 ...

  7. jQuery.proxy(function,context)

    jQuery.proxy(function,context) 概述 jQuery 1.4 新增.返回一个新函数,并且这个函数始终保持了特定的作用域.大理石平台检定规程 当有事件处理函数要附加到元素上, ...

  8. jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解

    1.(function($) {…})(jQuery); 1).原理: 这实际上是匿名函数,如下: function(arg){…} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写 ...

  9. jquery中的get和set

    jquery中通过参数的个数来判断是get方法还是set方法: css: function(name, value ) { return value !== undefined ? jQuery.st ...

  10. jQuery基础之(二)jQuery中的$

    在jQuery中,最常用的莫过于使用美元符号$,它提供了各种各样的丰富功能.包括选择页面中一个或者一类元素.作为功能函数的前缀.windows.onload的完善,创建DOM节点等.本文介绍jQuer ...

随机推荐

  1. 使用IDEA连接mysql数据库

    1.IDEA配置数据库连接 2.添加数据库: 3.填写数据库信息: database输入框里面填写要连接的数据库名称 然后点击test connection,会弹出一个框,提示下载驱动,点击进行下载即 ...

  2. Javascript获取页面元素相对和绝对位置

    制作网页的过程中,你有时候需要知道某个元素在网页上的确切位置. 下面的教程总结了Javascript在网页定位方面的相关知识. 一.网页的大小和浏览器窗口的大小 首先,要明确两个基本概念. 一张网页的 ...

  3. 13 Spring Boot Shiro使用JS-CSS-IMG

    filterChainMap.put("/403", "anon");filterChainMap.put("/assets/**", &q ...

  4. SQL 介绍和操作

    1.什么是SQL SQL的全称是“结构话查询语句”(Structured Query Language ),是1974年有Boyce和chamberlin 提出来的.经过多年的发展,SQL语言已经成为 ...

  5. 51Nod 1277 字符串中的最大值 ( KMP && DP )

    题意 : 一个字符串的前缀是指包含该字符第一个字母的连续子串,例如:abcd的所有前缀为a, ab, abc, abcd.给出一个字符串S,求其所有前缀中,字符长度与出现次数的乘积的最大值.例如:S ...

  6. 洛谷P1077 摆花——题解

    题目传送 题目大意:有按顺序放的n种花,相同种类的花放一起,每种花最多放ai盆,共放了m盆花,求放花方案数. 求方案个数一般有以下思路:1.搜索:2.递推/动态规划:3.贪心:4.分治... 玄学估计 ...

  7. (42)嵌入式项目中常用到的C语言技能总结

    嵌入式项目中常用到的C语言技能 1.指针 .结构体. 枚举. 联合.数组.字符串.链表七个专题 2.结构体指针.结构体的多重嵌套[结构体中嵌套结构体.结构体中嵌套枚举.联合体.结构体中嵌套函数指针.一 ...

  8. 通过运行窗口输入命令方式,打开Internet窗口

    WIN + R 按键, 运行窗口出来后,我们输入‘inetcpl.cpl“,然后按确定. 弹出Interent属性窗口.

  9. What does the dot after dollar sign mean in jQuery when declaring variables?

    https://stackoverflow.com/questions/22156664/what-does-the-dot-after-dollar-sign-mean-in-jquery-when ...

  10. 微信小程序 button 组件

    button 组件 拥有强大的功能 自身可以拥有很多跟微信风格的样式,且是 表单 和 开放的能力 重要的 按钮 button 的属性: size: 类型 字符串 按钮的大小 属性值:default 默 ...