JS의 이벤트 모델 예제에 대한 자세한 설명
이전에는 이벤트 모델이 비교적 명확했고, 많은 개념이 내 마음 속에 명확하게 매핑되었습니다. 작업을 마친 후 한편으로는 제한 사항을 사용하고 다른 한편으로는 프레임워크에서 다양한 이벤트 모니터링 방법을 사용하는 데 익숙해졌습니다. 단순함은 편리함을 의미하며 시간이 지남에 따라 이벤트에 대한 일부 개념이 기억에서 사라지기 시작했습니다. 이제 C를 잊어버리기 시작한 것처럼, 언어 포인터, 맥스웰 방정식, 행렬 변환, 최소 제곱법 등. 지식은 단순한 것에서 심오한 것으로, 심오한 것에서 이해로 나아가는 길을 닦는 다채로운 조약돌과 같으며, 항상 당신이 더 멀리 나아갈 수 있도록 도와줍니다. 이벤트 모델을 다시 살펴보겠습니다.
이벤트에는 다음이 포함됩니다:마우스 이벤트키보드 이벤트오류 발생 시 프레임 이벤트 크기 조정 onscroll 등
폼 이벤트 onblur onfocus 등
클립보드 이벤트 oncopy oncut onpaste
Print 이벤트 onafterprint onbeforeprint
drag 애니메이션 이벤트 ondrag ondragenter 등
media events onplay onpause
animation events animationend
전환 이벤트
기타 이벤트 등
이벤트는
대상 이벤트 객체
이벤트 청취 객체
를 포함한 객체로 캡슐화됩니다. 키보드 이벤트 객체 등
여기에는 고유한 속성과 메서드가 포함되어 있으며 Event 객체에서 상속됩니다. W3C에 따라 다릅니다.
일반적으로 사용되는 방법:
event.preventDefault()//링크 점프 및 양식 제출과 같은 요소의 기본 동작 방지
event.stopPropagation()//이벤트 버블링 방지
모델
1. 원본 이벤트 모델(DOM 레벨 0) 특징: 원본 이벤트 모델에는 이벤트 발생 후 전파 개념이 없으며 이벤트 흐름도 없습니다. 사건이 발생하면 즉시 처리하세요.
리스닝 함수는 요소의 속성 값일 뿐입니다. 리스너는 요소의 속성 값을 지정하여 바인딩됩니다. 작성 방법은 두 가지가 있습니다. HTML:
js : document.getElementsById('btn').onclick = func
단점:
b. 동일한 이벤트에 대해 하나의 청취 기능만 바인딩될 수 있으며 나중에 바인딩된 기능은 이전 기능을 덮어씁니다.
c. 이벤트 버블링, 위임 및 기타 메커니즘을 전달할 수 없습니다.
현재 웹 프로그램의 모듈식 개발과 더욱 복잡한 로직에서 이 방법은 확실히 구식이므로 실제 프로젝트에서는 사용하지 않는 것이 좋습니다. 평소에는 일부 데모를 작성해도 괜찮고 속도도 더 빠릅니다.
특징: IE는 처리 함수에서 이벤트 객체를 창의 속성으로 설정합니다. 함수 실행이 완료되면 null
IE의 이벤트 모델에는 두 단계만 있습니다. 먼저 요소의 청취 기능이 실행된 다음 이벤트가 상위 노드를 따라 문서로 전달됩니다. 청취 기능을 바인딩하고 해제하는 방법: attachmentEvent("eventType","handler"), 여기서 evetType은 onclick과 같은 이벤트 유형이므로
'on'을 추가하는 데 주의하세요.
이벤트 리스너를 비활성화하는 방법은 detachEvent("eventType", "handler" )입니다.
단점: IE 자체에서만 사용할 수 있어 너무 춥습니다.
3. DOM2 이벤트 모델
이벤트 모델은 W3C Level 2 DOM 이벤트, 즉 DOM2 이벤트 모델로 표준화되어 있습니다. 최신 브라우저(IE9 이하 제외)는 모두 이 사양을 따릅니다.
W3C에서 개발한 이벤트 모델에서 이벤트 발생에는 세 가지 프로세스가 포함됩니다. a. 이벤트 캡처 단계. 이벤트는 문서에서 대상 요소까지 전파됩니다. 이 과정에서 전달된 노드를 차례로 확인하여 해당 이벤트에 대한 청취 기능이 등록되었는지 확인하고 등록된 경우 실행됩니다. b. 이벤트 처리 단계. 이벤트가 대상 요소에 도달하면 대상 요소의 이벤트 처리 기능이 실행됩니다.
c. 이벤트는 문서에 도달할 때까지 대상 요소에서 발생합니다. 또한 전달 노드가 이벤트에 대한 수신 기능을 등록했는지 여부도 확인합니다.
참고:
모든 이벤트 유형은 이벤트 캡처 단계를 거치지만 일부 이벤트만 이벤트 버블링 단계를 거치게 됩니다. 예를 들어
제출 이벤트는 버블링되지 않습니다.
리스닝 기능을 바인딩하고 해제하는 방법:
addEventListener("eventType", "handler", "true|false"); 여기서 eventType은 이벤트 유형을 나타냅니다. 참고
두 번째 매개변수는 처리 함수입니다. 세 번째 매개변수는 캡처 단계에서 실제 캡처 단계에 들어갈지 여부를 지정하는 데 사용되며, 버블링 단계에서만 false입니다. 리스너 제거도 비슷합니다. ,"handler","true !false");
IE 및 최신 브라우저와 호환 이벤트 등록 듣기 쓰기 방법
var a = document.getElementById('XXX'); if(a.attachEvent){ a.attachEvent('onclick',func); } else{//IE9以上和主流浏览器 a.addEventListener('click',func,false); }
现有的框架和类库都会对适应各种浏览器做兼容性的封装,JQuery底层即使用了上面的兼容性写法。
三、事件的捕获-冒泡机制
DOM2标准中,一次事件的完整过程包括三步:捕获→执行目标元素的监听函数→冒泡,在捕获和
冒泡阶段,会依次检查途径的每个节点,如果该节点注册了相应的监听函数,则执行监听函数。
以如下HTML结构为例子,执行流程应该是这样的:
<div id="parent"> 父元素 <div id="child">子元素</div> </div>
运行一下一目了然。
var parent= document.getElementById('parent'); console.dir(parent); var child = document.getElementById('child'); parent.addEventListener('click',function(){alert('父亲在捕获阶段被点 击');},true);//第三个参数为true child.addEventListener('click',function(){alert('孩子被点击了');},false); parent.addEventListener('click',function(){alert('父亲在冒泡阶段被点击 了');},false);//第三个参数为false
可以看到,第三个即用来指定是否在捕获阶段进 true捕获阶段,false没有捕获阶段 。
如果不想让事件向上冒泡,可以在监听函数中调用event.stopPrapagation()来完成,后面会有应
用的栗子。
四、事件委托机制
委托就是把事件监听函数绑定到父元素上,让它的父辈来完成事件的监听,这样就把事情“委托
”了过去。在父辈元素的监听函数中,可通过event.target属性拿到触发事件的原始元素,然后
再对其进行相关处理。
五、jQuery中的事件监听方式
jQuery中提供了四种事件监听方式,分别是bind、live、delegate、on,对应的解除监听的
函数分别是unbind、die、undelegate、off。这几个方法已经对各种浏览器的兼容性进行封装。
具体方法可以查看手册。
注意几点:
jQuery推荐事件的绑定都使使用on方法
jQuery默认事件不在捕获中进行
六、什么是自定义事件
张鑫旭的《js-dom自定义事件》
七、一个简单例子
点击弹窗之外任何地方,弹框关闭。
方法:给body绑定事件,在事件的执行函数里关闭弹框;
给弹框元素绑定点击事件,在事件的执行函数里面组织事件冒泡,即:
event.stopPrapagation();
위 내용은 JS의 이벤트 모델 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











기존 컴퓨팅을 능가할 뿐만 아니라 더 낮은 비용으로 더 효율적인 성능을 달성하는 인공 지능 모델을 상상해 보세요. 이것은 공상과학 소설이 아닙니다. DeepSeek-V2[1], 세계에서 가장 강력한 오픈 소스 MoE 모델이 여기에 있습니다. DeepSeek-V2는 경제적인 훈련과 효율적인 추론이라는 특징을 지닌 전문가(MoE) 언어 모델의 강력한 혼합입니다. 이는 236B 매개변수로 구성되며, 그 중 21B는 각 마커를 활성화하는 데 사용됩니다. DeepSeek67B와 비교하여 DeepSeek-V2는 더 강력한 성능을 제공하는 동시에 훈련 비용을 42.5% 절감하고 KV 캐시를 93.3% 줄이며 최대 생성 처리량을 5.76배로 늘립니다. DeepSeek은 일반 인공지능을 연구하는 회사입니다.

이달 초 MIT와 기타 기관의 연구자들은 MLP에 대한 매우 유망한 대안인 KAN을 제안했습니다. KAN은 정확성과 해석성 측면에서 MLP보다 뛰어납니다. 그리고 매우 적은 수의 매개변수로 더 많은 수의 매개변수를 사용하여 실행되는 MLP보다 성능이 뛰어날 수 있습니다. 예를 들어 저자는 KAN을 사용하여 더 작은 네트워크와 더 높은 수준의 자동화로 DeepMind의 결과를 재현했다고 밝혔습니다. 구체적으로 DeepMind의 MLP에는 약 300,000개의 매개변수가 있는 반면 KAN에는 약 200개의 매개변수만 있습니다. KAN은 MLP와 같이 강력한 수학적 기반을 가지고 있으며, KAN은 Kolmogorov-Arnold 표현 정리를 기반으로 합니다. 아래 그림과 같이 KAN은

Boston Dynamics Atlas가 공식적으로 전기 로봇 시대에 돌입했습니다! 어제 유압식 Atlas가 역사의 무대에서 "눈물을 흘리며" 물러났습니다. 오늘 Boston Dynamics는 전기식 Atlas가 작동 중이라고 발표했습니다. 상업용 휴머노이드 로봇 분야에서는 보스턴 다이내믹스가 테슬라와 경쟁하겠다는 각오를 다진 것으로 보인다. 새 영상은 공개된 지 10시간 만에 이미 100만 명이 넘는 조회수를 기록했다. 옛 사람들은 떠나고 새로운 역할이 등장하는 것은 역사적 필연이다. 올해가 휴머노이드 로봇의 폭발적인 해라는 것은 의심의 여지가 없습니다. 네티즌들은 “로봇의 발전으로 올해 개막식도 인간처럼 생겼고, 자유도도 인간보다 훨씬 크다. 그런데 정말 공포영화가 아닌가?”라는 반응을 보였다. 영상 시작 부분에서 아틀라스는 바닥에 등을 대고 가만히 누워 있는 모습입니다. 다음은 입이 떡 벌어지는 내용이다

Google이 추진하는 JAX의 성능은 최근 벤치마크 테스트에서 Pytorch와 TensorFlow를 능가하여 7개 지표에서 1위를 차지했습니다. 그리고 JAX 성능이 가장 좋은 TPU에서는 테스트가 이루어지지 않았습니다. 개발자들 사이에서는 여전히 Tensorflow보다 Pytorch가 더 인기가 있습니다. 그러나 앞으로는 더 큰 모델이 JAX 플랫폼을 기반으로 훈련되고 실행될 것입니다. 모델 최근 Keras 팀은 기본 PyTorch 구현을 사용하여 세 가지 백엔드(TensorFlow, JAX, PyTorch)와 TensorFlow를 사용하는 Keras2를 벤치마킹했습니다. 첫째, 그들은 주류 세트를 선택합니다.

AI는 실제로 수학을 변화시키고 있습니다. 최근 이 문제에 주목하고 있는 타오저쉬안(Tao Zhexuan)은 '미국수학회지(Bulletin of the American Mathematical Society)' 최신호를 게재했다. '기계가 수학을 바꿀 것인가?'라는 주제를 중심으로 많은 수학자들이 그들의 의견을 표현했습니다. 저자는 필즈상 수상자 Akshay Venkatesh, 중국 수학자 Zheng Lejun, 뉴욕대학교 컴퓨터 과학자 Ernest Davis 등 업계의 유명 학자들을 포함해 강력한 라인업을 보유하고 있습니다. AI의 세계는 극적으로 변했습니다. 이 기사 중 상당수는 1년 전에 제출되었습니다.

테슬라의 로봇 옵티머스(Optimus)의 최신 영상이 공개됐는데, 이미 공장에서 작동이 가능한 상태다. 정상 속도에서는 배터리(테슬라의 4680 배터리)를 다음과 같이 분류합니다. 공식은 또한 20배 속도로 보이는 모습을 공개했습니다. 작은 "워크스테이션"에서 따고 따고 따고 : 이번에 출시됩니다. 영상에는 옵티머스가 공장에서 이 작업을 전 과정에 걸쳐 사람의 개입 없이 완전히 자율적으로 완료하는 모습이 담겨 있습니다. 그리고 Optimus의 관점에서 보면 자동 오류 수정에 중점을 두고 구부러진 배터리를 집어 넣을 수도 있습니다. NVIDIA 과학자 Jim Fan은 Optimus의 손에 대해 높은 평가를 했습니다. Optimus의 손은 세계의 다섯 손가락 로봇 중 하나입니다. 가장 능숙합니다. 손은 촉각적일 뿐만 아니라

표적 탐지는 자율주행 시스템에서 상대적으로 성숙한 문제이며, 그 중 보행자 탐지는 가장 먼저 배포되는 알고리즘 중 하나입니다. 대부분의 논문에서 매우 포괄적인 연구가 수행되었습니다. 그러나 서라운드 뷰를 위한 어안 카메라를 사용한 거리 인식은 상대적으로 덜 연구되었습니다. 큰 방사형 왜곡으로 인해 표준 경계 상자 표현은 어안 카메라에서 구현하기 어렵습니다. 위의 설명을 완화하기 위해 확장된 경계 상자, 타원 및 일반 다각형 디자인을 극/각 표현으로 탐색하고 인스턴스 분할 mIOU 메트릭을 정의하여 이러한 표현을 분석합니다. 제안된 다각형 형태의 모델 fisheyeDetNet은 다른 모델보다 성능이 뛰어나며 동시에 자율 주행을 위한 Valeo fisheye 카메라 데이터 세트에서 49.5% mAP를 달성합니다.

1. 소개 지난 몇 년 동안 YOLO는 계산 비용과 감지 성능 간의 효과적인 균형으로 인해 실시간 객체 감지 분야에서 지배적인 패러다임이 되었습니다. 연구원들은 YOLO의 아키텍처 설계, 최적화 목표, 데이터 확장 전략 등을 탐색하여 상당한 진전을 이루었습니다. 동시에 사후 처리를 위해 NMS(비최대 억제)에 의존하면 YOLO의 엔드투엔드 배포가 방해되고 추론 대기 시간에 부정적인 영향을 미칩니다. YOLO에서는 다양한 구성 요소의 설계에 포괄적이고 철저한 검사가 부족하여 상당한 계산 중복이 발생하고 모델 기능이 제한됩니다. 이는 최적이 아닌 효율성을 제공하며 성능 향상을 위한 상대적으로 큰 잠재력을 제공합니다. 이 작업의 목표는 사후 처리와 모델 아키텍처 모두에서 YOLO의 성능 효율성 경계를 더욱 향상시키는 것입니다. 이를 위해
