스택큐힙리스트

event.preventDefault() vs. return false는 이벤트를 중단시키는 두 가지 방법입니다. 본문

카테고리 없음

event.preventDefault() vs. return false는 이벤트를 중단시키는 두 가지 방법입니다.

스택큐힙리스트 2023. 12. 31. 01:07
반응형

특정 이벤트가 발생한 후에 다른 이벤트 핸들러들이 실행되지 않도록 방지하고 싶을 때, 두 가지 기법을 사용할 수 있습니다. 예제에서는 jQuery를 사용하겠지만, 일반 JS에도 적용됩니다:


1. event.preventDefault()


$('a').click(function (e) {
// 여기에 사용자 정의 핸들링
e.preventDefault();
});

2. return false


$('a').click(function () {
// 여기에 사용자 정의 핸들링
return false;
});

이벤트 전파를 중지하는 두 가지 방법 사이에는 중요한 차이가 있을까요?


저에게 있어서, return false;은 메서드 실행보다 간단하고 짧으며 오류 가능성도 더 적습니다. 메서드를 사용할 경우, 올바른 대소문자, 괄호 등을 기억해야 합니다.

또한, 콜백의 첫 번째 매개변수를 정의하여 메서드를 호출할 수 있어야 합니다. 아마도 이렇게 하는 대신 preventDefault를 사용해야 하는 몇 가지 이유가 있는 것 같습니다. 어떤 게 더 나은 방법인가요?

답변 1

return false에는 jQuery 이벤트 핸들러 내부에서 호출하는 것과 동일한 효과가 있으며, 전달된 jQuery.Event 객체에 대해 e.preventDefaulte.stopPropagation을 모두 호출하는 것과 같습니다.


e.preventDefault()는 기본 이벤트가 발생하는 것을 방지하고, e.stopPropagation()은 이벤트가 버블링되는 것을 방지하며, return false는 둘 다 수행합니다. 알려진 바에 따르면, 이 동작은 (jQjuery가 아닌) 일반적인 이벤트 핸들러와 다르며, 특히 return false는 이벤트가 버블링되는 것을 중단하지 않습니다.


출처: John Resig


href 클릭 취소를 위해 event.preventDefault() 대신 return false를 사용하는 것의 장점?

답변 2

event.preventDefault() vs. return false: 알아두면 유용한 JavaScript 이벤트 처리 방식
자바스크립트를 사용하여 웹페이지를 개발할 때, 한 가지 중요한 과제는 사용자의 상호작용에 대한 이벤트 처리입니다. 사용자의 클릭, 입력 등의 이벤트에 대응하여 올바른 동작이 이루어져야 하는데, 이때 event.preventDefault()와 return false는 두 가지 선택지입니다. 이번 글에서는 이 두 방식에 대해 SEO 관점에서 알아보고자 합니다.
첫째로, event.preventDefault()는 이벤트의 기본 동작을 방지하는 메서드입니다. 이벤트가 발생한 요소의 기본 동작을 중단시켜 다른 동작으로 대체할 수 있게 해줍니다. 이 방식을 사용하면 동일한 이벤트에 대해 다른 동작이 수행될 수 있으므로, 웹페이지를 보다 유연하고 다양한 방식으로 개발할 수 있습니다.
한편, return false는 이벤트의 기본 동작을 취소하고 이벤트 버블링(Bubbling)을 멈춥니다. 즉, 이벤트가 상위 요소로 전파되는 것을 막아줍니다. return false는 이벤트 핸들러에서 false 값을 반환함으로써 이벤트를 중단합니다. 이 방식은 가장 오래된 방법 중 하나로, 오래된 브라우저와의 호환성을 고려할 때 유용할 수 있습니다.
그렇다면, SEO 관점에서 이 두 방식 중 어느 것을 선택해야 할까요? 검색 엔진은 웹페이지의 내용을 파악하고 인덱싱하는 과정에서 자바스크립트의 실행을 염두에 두지 않습니다. 따라서, 각 이벤트에 대한 적절한 처리를 위해 자바스크립트를 사용하는 것은 웹페이지의 질을 높이는 데 도움이 됩니다. 그렇기 때문에 event.preventDefault()와 return false는 모두 검색 엔진 최적화에 도움을 줄 수 있습니다.
하지만, event.preventDefault()는 더 선호되는 방식입니다. 이는 유지보수와 개발의 편의성을 고려할 때 좋은 선택입니다. return false는 해당 이벤트를 전파하는 것을 막으므로, 페이지 상에서 다른 이벤트 핸들러나 기능들이 영향을 받을 수 있습니다. 반면, event.preventDefault()는 해당 이벤트에 대한 동작만 중지하고, 다른 요소에 영향을 주지 않으므로 더 안전한 방식입니다.
결론적으로, event.preventDefault()와 return false는 각각의 장단점을 가지고 있으며 SEO 관점에서 모두 유용합니다. 그러나 보다 유지보수하고 신뢰성 있는 코드를 작성하기 위해 event.preventDefault()를 선호하는 것이 좋습니다. 웹페이지의 성능과 검색 엔진 최적화에 중점을 둔 개발을 통해 다양한 사용자들에게 높은 품질의 웹 경험을 제공할 수 있습니다.

반응형
Comments