일반 소개
jQuery는 기본 이벤트 처리 메커니즘을 추가하고 확장하여 보다 우아한 이벤트 처리 구문을 제공할 뿐만 아니라 이벤트 처리 기능을 크게 향상시킵니다
jQuery 이벤트
DOM 로딩
은 JavaScript의 window.onload 메소드를 대체하기 위해 jQuery의 $(document).ready() 메소드를 사용하지만 약간의 차이점도 있습니다
1. 실행 타이밍
예를 들어, 사진이 많은 웹페이지가 있습니다
$(document).ready() 메소드는 이 웹페이지에 있습니다. DOM 트리가 로드되고 DOM 트리와 이미지가 로드된 후에 window.onload 메서드를 실행해야 합니다.
jQuery를 사용하고 전체 페이지가 로드된 후에 실행하려면 load( ) 메소드
다음 두 코드의 기능은 동일합니다
// jQuery $(window).load(function(){ // 代码1 }); // JavaScript window.onload = function(){ // 代码2 };
2. 여러 번 사용하세요
JavaScript의 onload 이벤트는 참조만 저장할 수 있습니다. 한 번에 하나의 함수, $(document).ready()는 여러 개를 저장할 수 있습니다
function one(){ alert('1'); } function two(){ alert('2'); } // JavaScript window.onload = one; window.onload = two;//只执行two() // jQuery $(document).ready(function(){ one(); }); $(document).ready(function(){ two(); });//one() 和 two()都会执行
3. 약어
$(document).ready(function(){}); $(function(){});
이벤트 바인딩
bind() 함수 구문: 바인딩(type,[.data],fn)
먼저 첫 번째 매개변수는 이벤트 유형입니다.
두 번째 매개변수는 선택적 매개변수로, event.data 속성 값으로 이벤트 객체에 전달되는 추가 데이터 객체입니다.
세 번째 매개변수는 바인딩에 사용되는 처리 기능
은 두 개의 div가 있습니다. 첫 번째 div를 클릭하면 두 번째 div가 표시됩니다. 추가된 기능: div1을 클릭하면 div2가 표시되면 숨기고 그렇지 않으면 표시합니다
<div id="div1"></div> <div id="div2"></div> <script type="text/javascript"> $(function(){ $('#div1').bind('click',function(){ $(this).next().show(); }); });
약어:
$(function(){ $('#div1').bind('click',function(){ if($(this).next().is(':visible')){ $(this).next().hide(); }else{ $(this).next().show(); } }); });
합성 이벤트
$('#div1').click(function(){ if($(this).next().is(':visible')){ $(this).next().hide(); }else{ $(this).next().show(); } })
2.toggle() 메서드는
$('#div1').hover(function(){ $(this).next().show(); },function(){ $(this).next().hide(); });
방지 이벤트 버블링 및 기본 동작 방지
$('#div1').toggle(function(){ $(this).next().show(); },function(){ $(this).next().hide(); });
2. event.target
$('#div1').click(function(ev){ alert(ev.type);//click })
3. event.관련Target
$('#div1').click(function(ev){ alert(ev.target.id);//div1 })
5. event.which
$('#div1').click(function(ev){ alert(ev.pageX + ',' + ev.pageY);//275,181 })
이벤트 제거
$('#div1').click(function(ev){ alert(ev.which);//1是鼠标左键,2是鼠标中见,3是鼠标右键 })
첫 번째 매개변수는 이벤트 유형, 두 번째 매개변수는 제거할 함수 예시를 보면 다음 이벤트를 div1에 바인딩합니다
1 .매개변수가 없으면 바인딩된 이벤트 모두 삭제
< > $ ('#Div1'). // 모든 이벤트 삭제$('#div1').bind('click',function(){ alert('1'); }).bind('click',function(){ alert('2'); }).bind('mouseover',function(){ alert('3'); })
2. 이벤트 유형이 매개변수로 제공되는 경우 , 이 유형의 바인딩 이벤트만
$('#div1').unbind('mouseover');//마우스 오버 이벤트 삭제
3. 바인딩 시 전달된 처리 기능이 다음과 같은 경우 두 번째 매개변수로 사용하면 이 특정 시간만 처리됩니다. 함수는 삭제됩니다
시뮬레이션 연산
1. 일반적으로 사용되는 시뮬레이션
jQuery에서는 Trigger() 메서드를 사용하여 시뮬레이션 작업을 완료할 수 있습니다. 예를 들어 다음 코드를 사용하여 btn 버튼
$('#btn').trigger('click')의 클릭 이벤트에 대한 ID를 트리거할 수 있습니다. ;
2. 사용자 정의 이벤트 트리거
trigger() 메소드 브라우저에서 지원하는 동일한 이름의 이벤트를 트리거할 수 있을 뿐만 아니라 사용자 정의 이름을 가진 이벤트도 트리거할 수 있습니다.
3. 데이터 전달$('#btn').bind('myclick',function(){ alert('1'); }); $('#btn').trigger('myclick');
$('#btn').bind('myclick',function(event,message1,message2){ alert(message1 + message2); }); $('#btn').trigger('myclick',["1","2"]);
위 코드는 입력 요소의 포커스 이벤트를 트리거하고 요소 자체도 포커스를 얻도록 합니다.
< input> 요소, 동시에 브라우저 취소 이 이벤트의 기본 작업은 TriggerHandler() 메서드를 사용할 수 있습니다.
다른 사용법
관리를 용이하게 하기 위해 이벤트 네임스페이스 추가
예를 들어 여러 이벤트 유형을 요소에 바인딩할 수 있습니다. 네임스페이스를 사용하여 표준화합니다.
위 내용은 이 기사의 전체 내용입니다. 이 기사의 내용이 모든 사람의 연구 또는 학습에 도움이 되기를 바랍니다. 나는 또한 PHP 중국어 웹사이트를 지원하고 싶습니다! jQuery 이벤트와 관련된 더 자세한 글은 PHP 중국어 홈페이지를 참고해주세요!$('div').bind('click.plugin',function(){ alert('1'); }); $('div').bind('mouseover.plugin',function(){ alert('2'); }); $('div').bind('dbclick.plugin',function(){ alert('3'); }); $('button').click(function(){ $('div').unbind('.plugin'); })