$(function(){ }是$(document).ready(function()的简写,相当于window.onload = function(){ } ,虽然这段jquery代码与javascript代码在功能上可以互换,但执行的时间不一样,前者页面框架加载完成就执行,后者页面中所有内容加载完成才执行
是什么
$(function(){ }是$(document).ready(function()的简写,相当于window.onload = function(){ }。
$(function(){}也被称为文档就绪函数或匿名函数,是jQuery库中常用的一个特殊构造。
和js原生区别
虽然这段jquery代码与javascript代码在功能上可以互换,但执行的时间不一样,前者页面框架加载完成就执行,后者页面中所有内容加载完成才执行
干什么用
它的作用是在DOM树加载完毕并且文档中的所有元素都能够被访问和操作时执行指定的函数代码。换句话说,$(function(){}会等待文档准备好后再执行包含在其中的代码。
语法结构:
-
防止代码意外执行:在某些情况下,如果JavaScript代码在DOM加载之前就开始执行,可能会导致操作的元素还不存在或者无法被找到。使用$(function(){}可以确保相关代码在DOM完全加载后再执行,避免这类问题。
-
简化代码:通过将需要在文档就绪时执行的代码放在$(function(){})中,可以使代码更简洁和易读。
-
等价于$(document).ready():$(function(){})是$(document).ready()的简写形式,两者效果是相同的。
怎么用
使用说明:
- 在需要执行代码的地方,使用$(function(){}将代码包裹起来。
- 将需要在文档就绪时执行的代码放在$(function(){})中的花括号内。
- 在需要执行的代码内部,可以添加任意JavaScript代码,进行DOM操作、事件绑定、变量初始化等操作。
示例代码:
基础用法:
$(function(){
// 在文档就绪后执行的代码
// 可以在这里进行各种DOM操作、事件绑定等
$('.my-element').click(function(){
alert('点击了元素!');
});
var count = $('.my-element').length;
console.log('元素个数:' + count);
// 更多代码...
});
复杂用法
较复杂的代码逻辑或需要多个模块之间的交互时,建议使用模块化开发的方式,将逻辑分离为多个函数或模块,提高代码的可维护性和复用性。
$(function(){
// 将逻辑拆分为多个函数或模块
function init() {
bindEvents();
updateCounter();
// 更多初始化操作...
}
function bindEvents() {
$('.my-element').click(function(){
alert('点击了元素!');
});
}
function updateCounter() {
var count = $('.my-element').length;
console.log('元素个数:' + count);
}
// 执行初始化
init();
});
注意事项
- 请确保在引入jQuery库之后再使用$(function(){}),以确保jQuery库已经加载完毕。
- 在代码内部,尽量避免使用大量耗时操作,以免影响页面性能。
- 当需要在不同的地方使用$(function(){})时,请确保代码逻辑和功能的独立性,避免出现不必要的依赖。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)