JQuery启动方法

本文详细介绍了jQuery中处理文档加载完成的各种方式,包括多种ready事件的写法,并解释了jQuery构造函数的不同用法及其参数含义。

参考版本:1.2.6
从下面启动类中,可以明显看出ready事件的几种写法:

  1. $('document').ready(function(){});
  2. $().ready(function(){});
  3. $(function(){});

 

jQuery.fn = jQuery.prototype = {
	init: function( selector, context ) {
		///	<summary>
	        ///	1: $(expression, context) - 这个函数接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组元素。
    	        ///		2: $(html) - 根据提供的原始 HTML 标记字符串,动态创建由 jQuery 对象包装的 DOM 元素。
	        ///		3: $(elements) - 将一个或多个DOM元素转化为jQuery对象。
	        ///		4: $(callback) - $(document).ready()的简写。
		///	</summary>
		///	<param name="selector" type="String">
	       ///		1: expression - 用来查找的表达式。
	       ///		2: html -用于动态创建DOM元素的HTML标记字符串
	      ///		3: elements - 用于封装成jQuery对象的DOM元素
	      ///		4: callback - 当DOM加载完成后,执行其中的函数。
	      ///	</param>
	      ///	<param name="context" type="jQuery">
    	      ///		1: context - (可选) 作为待查找的 DOM 元素集、文档或 jQuery 对象。
	     ///	</param>
	     ///	<returns type="jQuery" />

		// Make sure that a selection was provided
		// --- 如果没有写selector就会用document代替,经实验$().ready();是可以使用的。
		selector = selector || document;

		///nodeType 属性可返回节点的类型。
		/// 最重要的节点类型是:
		/// 元素类型	节点类型
                ///元素element	1
               ///属性attr	2
               ///文本text	3
               ///注释comments	8
              ///文档document	9
		// Handle $(DOMElement)
		if ( selector.nodeType ) {
			this[0] = selector;
			this.length = 1;
			return this;
		}

		// Handle HTML strings
		if ( typeof selector == "string" ) {
			// Are we dealing with HTML string or an ID?
			var match = quickExpr.exec( selector );

			// Verify a match, and that no context was specified for #id
			if ( match && (match[1] || !context) ) {

				// HANDLE: $(html) -> $(array)
				if ( match[1] )
					selector = jQuery.clean( [ match[1] ], context );

				// HANDLE: $("#id")
				else {
				    // --- ID选择器部分
					var elem = document.getElementById( match[3] );

					// Make sure an element was located
					if ( elem ){
					    // --- 跨浏览器兼容问题:document.getElementById
						// Handle the case where IE and Opera return items
						// by name instead of ID
						if ( elem.id != match[3] )
							return jQuery().find( selector );

						// Otherwise, we inject the element directly into the jQuery object
						return jQuery( elem );
					}
					selector = [];
				}

			// HANDLE: $(expr, [context])
			// (which is just equivalent to: $(content).find(expr)
			} else
				return jQuery( context ).find( selector );

		// HANDLE: $(function)
		// Shortcut for document ready
	    // --- ready的另外一种写法
		} else if ( jQuery.isFunction( selector ) )
			return jQuery( document )[ jQuery.fn.ready ? "ready" : "load" ]( selector );

		return this.setArray(jQuery.makeArray(selector));
	}
<think>我们正在处理用户关于"在jQuery启动时调用函数"的问题。用户询问的是如何在页面加载时执行jQuery函数。根据引用[1],在Page_Load事件中可以使用ClientScript.RegisterStartupScript来调用JavaScript函数。但这是ASP.NET的服务器端方法,而用户可能是在纯客户端环境中使用jQuery。在jQuery中,我们通常使用$(document).ready()来确保在DOM加载完成后执行代码。这是最常见的启动时调用函数的方式。另外,引用[2]提到了jQuery对象的属性,但与我们当前的问题关系不大。引用[3]和[4]是关于隐藏域和Meteor框架的,也不直接相关。因此,我们将重点使用jQuery的$(document).ready()方法。回答结构:1.解释在jQuery启动时调用函数的常用方法:$(document).ready()2.提供一个示例代码3.说明另一种简写方式4.生成相关问题注意:用户要求使用中文回答,并且所有数学表达式用$...$或$$...$$格式,但这个问题不涉及数学表达式,所以我们可以忽略数学格式要求。</think>### 如何在jQuery启动时调用函数 在jQuery中,要在页面加载时自动调用函数,需使用 **$(document).ready()** 方法。这是jQuery的标准做法,确保DOM完全加载后执行代码(无需等待图片等资源加载完成)。以下是具体实现: #### 方法1:标准语法 ```javascript $(document).ready(function() { // 在此处调用您的函数 yourFunctionName(); }); ``` #### 方法2:简化语法(推荐) ```javascript $(function() { // 启动时自动执行的代码 yourFunctionName(); }); ``` #### 示例:页面加载时显示欢迎弹窗 ```html <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> // 定义函数 function showWelcome() { alert("页面已加载完成!"); } // 页面加载时调用 $(function() { showWelcome(); // 函数调用 }); </script> ``` ### 关键说明 1. **执行时机** `$(document).ready()` 在DOM树构建完成后立即触发,比 `window.onload` 更早执行[^1]。 2. **多次使用** 可在同一页面多次使用 `$(document).ready()`,所有回调函数会按声明顺序执行。 3. **简写原理** `$(function(){...})` 是 `$(document).ready()` 的语法糖,两者功能完全一致[^2]。 4. **与原生JS对比** 等效于原生JavaScript的: ```javascript document.addEventListener("DOMContentLoaded", yourFunctionName); ``` > **注意事项**:若函数依赖外部资源(如图片),需改用 `$(window).on("load", function(){...})` 确保资源就绪。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值