찾다
웹 프론트엔드JS 튜토리얼JQuery_jquery의 DOM 로딩 및 이벤트 실행 예제 분석

이 기사의 예에서는 JQuery의 DOM 로딩 및 이벤트 실행 원칙을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

JavaScript와 HTML 간의 상호 작용은 사용자와 브라우저가 페이지를 작동할 때 발생하는 이벤트를 통해 처리됩니다. 문서 또는 해당 요소 중 일부에서 특정 변경이나 작업이 발생하면 브라우저가 자동으로 이벤트를 생성합니다. 예를 들어 브라우저가 문서를 로드하면 이벤트가 생성됩니다. 사용자가 버튼을 클릭하면 이벤트도 생성됩니다. 이러한 상호 작용은 기존 JavaScript 이벤트를 사용하여 수행할 수 있지만 jQuery는 기본 이벤트 처리 메커니즘을 추가하고 확장합니다. jQuery는 보다 우아한 이벤트 처리 구문을 제공할 뿐만 아니라 이벤트 처리 기능을 크게 향상시킵니다.

문서를 로드하는 브라우저를 예로 들면, 페이지가 로드된 후 브라우저는 JavaScript를 통해 DOM 요소에 이벤트를 추가합니다. 일반 JavaScript 코드에서는 주로 window.onload 메서드를 사용하지만, jQuery에서는 $(document).ready() 메서드를 사용합니다. $(document).ready() 메소드는 이벤트 모듈에서 가장 중요한 기능으로 웹 애플리케이션의 응답 속도를 크게 향상시킬 수 있습니다. jQuery는 $(document).ready() 메서드를 사용하여 기존 JavaScript window.onload 메서드를 대체합니다. 이 방법을 사용하면 DOM을 조작하고 DOM이 로드될 때 바인딩된 함수를 호출할 수 있습니다. 사용하는 동안 $(document).ready() 메서드와 window.onload 메서드 사이의 미묘한 차이점에 주의해야 합니다.

실행 시기

$(document).ready() 메소드와 window.onload 메소드는 기능은 비슷하지만 실행 시점에 차이가 있습니다. window.onload 메서드는 웹 페이지의 모든 요소(요소와 관련된 모든 파일 포함)가 브라우저에 완전히 로드된 후에 실행됩니다. 즉, JavaScript는 현재 웹 페이지의 모든 요소에만 액세스할 수 있습니다. jQuery에서 $(document).ready() 메소드를 통해 등록된 이벤트 핸들러는 DOM이 완전히 준비되면 호출할 수 있습니다. 이 시점에서 웹 페이지의 모든 요소는 jQuery에 액세스할 수 있지만 이것이 해당 요소와 관련된 파일이 다운로드되었다는 의미는 아닙니다.

예를 들어, 웹 페이지의 모든 사진에 특정 동작(예: 사진을 클릭하면 사진을 숨기거나 표시하는 등)을 추가하는 대형 사진 갤러리 웹사이트가 있습니다. window.onload 메서드를 사용하는 경우 사용자는 계속 진행하기 전에 각 이미지가 로드될 때까지 기다려야 합니다. jQuery에서 $(document).ready() 메서드를 사용하여 설정하면 모든 이미지가 다운로드될 때까지 기다리지 않고 DOM이 준비된 한 작업할 수 있습니다. 분명히 웹페이지를 DOM 트리로 구문 분석하는 것은 페이지의 모든 관련 파일을 로드하는 것보다 훨씬 빠릅니다.

또한, DOM이 준비된 동안에는 $(document).ready() 메소드에 등록된 이벤트가 실행되기 때문에 이때 해당 요소의 관련 파일이 다운로드되지 않을 수도 있다는 점 유의하시기 바랍니다. . 예를 들어, 이미지와 관련된 HTML을 다운로드하여 DOM 트리로 파싱했지만, 이미지가 아직 로드되지 않았을 가능성이 높으므로 이때 이미지의 높이, 너비 등의 속성이 유효하지 않을 수 있습니다. 시간. 이 문제를 해결하려면 jQuery의 또 다른 페이지 로딩 메소드인 load() 메소드를 사용할 수 있습니다. load() 메서드는 핸들러 함수를 요소의 onload 이벤트에 바인딩합니다. 핸들러 함수가 창 개체에 바인딩된 경우 모든 콘텐츠(창, 프레임, 개체, 이미지 등 포함)가 로드된 후에 트리거됩니다. 요소의 콘텐츠가 로드됩니다. jQuery 코드는 다음과 같습니다.

$(window).load(function(){  
    // 编写代码  
})

은 JavaScript의 다음 코드와 동일합니다.

window.onload = function(){   
    // 编写代码   
})

이제 windows.onload 메서드와 $(document).ready() 메서드의 차이점을 자세히 설명하겠습니다.

웹 페이지에 두 가지 기능이 있다고 가정하면 JavaScript 코드는 다음과 같습니다.

function one(){  
  alert("one");  
}  
function two(){  
  alert ("two");  
}

웹페이지가 로드되면 다음 JavaScript 코드를 통해 각각 one 함수와 two 함수를 호출합니다.

window.onload = one;  
window.onload = two;

그러나 코드를 실행한 결과 "two"라는 문자열 대화 상자만 나타나는 것을 발견했습니다. 문자열 "one" 대화 상자가 표시되지 않는 이유는 JavaScript의 onload 이벤트가 한 번에 하나의 함수에 대한 참조만 저장할 수 있기 때문입니다. 자동으로 이전 함수를 이후 함수로 덮어쓰므로 새 동작을 추가할 수 없습니다. 기존 행동.

두 함수의 순차적 트리거 효과를 얻으려면 이를 달성하기 위한 새로운 JavaScript 메서드만 생성하면 됩니다.

window.onload = function(){  
    one();  
    two();  
}

이러한 방식으로 코드를 작성하면 일부 문제가 해결될 수 있지만 여전히 특정 요구 사항을 충족할 수 없습니다. 예를 들어 JavaScript 파일이 여러 개 있는 경우 각 파일은 window.onload 메서드를 사용해야 합니다. 이 경우 언급된 방법을 사용하세요. 코드를 작성하는 것은 골치 아픈 일이 될 수 있습니다. jQuery의 $(document).ready() 메서드는 이러한 상황을 매우 잘 처리할 수 있습니다. $(document).ready() 메서드가 호출될 때마다 이러한 동작 함수는 기존 동작에 추가됩니다. 등록 시 순차적으로 실행됩니다. 예를 들어 다음 jQuery 코드는 다음과 같습니다.

function one(){  
    alert("one");  
}  
function two(){  
    alert("two");  
}  
$(document).ready(function(){  
    one();  
})  
$(document).ready(function(){  
    two();  
});

运行代码后,会先弹出字符串“one”对话框,然后弹出字符串“two”对话框。

下面看看ready()与onload()的耗时:

jQuery的ready()耗时 : 498 ms

简写方式

上面我们ready函数写成这样:

$(document).ready(function(){  
    // 编写代码  
})

也可以简写成这样:

$(function(){  
  // 编写代码  
})

另外,$(document)也可以简写为$()。当$()不带参数时,默认参数就是“document”,因此可以简写为:

$().ready(function(){  
    // 编写代码  
})

3种方式都是一样的功能,读者可以根据自己的喜好,选择其中的一种。

希望本文所述对大家的jQuery程序设计有所帮助。

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
jquery实现多少秒后隐藏图片jquery实现多少秒后隐藏图片Apr 20, 2022 pm 05:33 PM

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

axios与jquery的区别是什么axios与jquery的区别是什么Apr 20, 2022 pm 06:18 PM

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

jquery怎么修改min-height样式jquery怎么修改min-height样式Apr 20, 2022 pm 12:19 PM

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

jquery怎么在body中增加元素jquery怎么在body中增加元素Apr 22, 2022 am 11:13 AM

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

jquery怎么删除div内所有子元素jquery怎么删除div内所有子元素Apr 21, 2022 pm 07:08 PM

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

jquery中apply()方法怎么用jquery中apply()方法怎么用Apr 24, 2022 pm 05:35 PM

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

jquery怎么去掉只读属性jquery怎么去掉只读属性Apr 20, 2022 pm 07:55 PM

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。

jquery on()有几个参数jquery on()有几个参数Apr 21, 2022 am 11:29 AM

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.