> 웹 프론트엔드 > JS 튜토리얼 > 이벤트가 터지는 것을 방지

이벤트가 터지는 것을 방지

巴扎黑
풀어 주다: 2016-11-25 13:33:52
원래의
980명이 탐색했습니다.

JavaScript는 버블링을 중지하고 브라우저 기본 동작을 방지합니다.

이벤트 호환

Js 코드

function myfn(e){

var evt = e ? e:window.event;

}



js 버블링 중지

Js 코드

function myfn (e){

window.event? window.event.cancelBubble = true : e.stopPropagation();

}



js는 기본값을 방지합니다. 동작

Js 코드

function myfn(e){

window.event? window.event.returnValue = false : e.preventDefault()

}



버블링 방지를 위한 js:
w3c의 메서드는 e.stopPropagation()이고 IE는 e.cancelBubble = true를 사용합니다.

stopPropagation도 이벤트 객체(Event)의 메소드 중 하나로 대상 요소의 버블링 이벤트를 방지하는 기능을 하지만 기본 동작을 방지하지는 않습니다.

js는 기본 동작을 방지합니다.
w3c의 메소드는 e.preventDefault()이고, IE는 e.returnValue = false를 사용합니다.

preventDefault는 이벤트 객체(Event) 메소드이며, 함수는 다음과 같습니다. 대상 요소의 기본 동작을 취소합니다.
기본 동작에 대해 이야기하고 있으므로 요소를 취소하려면 먼저 기본 동작이 있어야 합니다. 요소 자체에 기본 동작이 없으면 호출은 당연히 유효하지 않습니다.

어떤 요소에 기본 동작이 있나요? 링크 , 제출 버튼 등.
이벤트 객체의 취소 가능 여부가 false인 경우 기본 동작이 있어도 PreventDefault 호출이 작동하지 않는다는 의미입니다.

return false:
javascript의 return false는 기본 동작만 방지하지만 jQuery를 사용하면 기본 동작과 객체 버블링을 모두 방지할 수 있습니다.

사용법 요약:
버블링 동작을 중지해야 하는 경우

Js 코드

function stopBubble(e) {

//이벤트 객체가 제공되면 IE가 아닌 브라우저입니다.

if (e && e.stopPropagation)

//W3C stopPropagation()을 지원합니다. method

e.stopPropagation();

else

//그렇지 않으면 IE를 사용하여 이벤트 버블링을 취소해야 합니다.

window.event.cancelBubble = true;

}



기본 동작을 방지해야 하는 경우 다음을 사용할 수 있습니다.

Js 코드

/ /기본 브라우저 작업 방지

function stopDefault(e) {

//기본 브라우저 작업 방지(W3C)

if (e && e.preventDefault )

e.preventDefault();

//IE에서 함수의 기본 동작을 방지하는 방법

else

window.event.returnValue = false;

return false; 마우스의 위치와 상태, 누른 키 등

이벤트 개체는 이벤트 중에만 유효합니다.

Firefox의 이벤트는 IE의 이벤트와 다릅니다. IE의 이벤트는 전역 변수이며 언제든지 사용할 수 있습니다.

Firefox의 이벤트는 매개변수에 의해 안내되는 경우에만 사용할 수 있습니다. 런타임 시 임시 변수입니다.
IE/Opera에서는 window.event이고, Firefox에서는 event입니다.

이벤트의 개체는 IE에서는 window.event.srcElement이고,
Firefox에서는 event.target입니다. 둘 다 Opera에서 사용할 수 있습니다.

다음 두 문장은 동일한 효과를 갖습니다.


Js 코드

//code from http://caibaojian.com/javascript-stoppropagation-preventdefault. html

함수 a(e){

var e = (e) ? e : ((window.event) ? window.event : null); = e | window.event; // window.event는 Firefox에서는 null이고, IE에서는 event가 null입니다.

}

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿