자바스크립트 이벤트 리스너에서 preventDefault()와 stopPropagation() 그리고 return false는 자바스크립트 프로그래밍을 할 때 이벤트 중단을
위해 자주 사용되는 코드들이다.
이벤트 중단 시에 사용되는 방식에 대해서 간단하게 정리하면 아래와 같다.
P 영역 SPAN 영역
<div id="div" style="padding:20px;background-color: #848484;color:#fff">
DIV 영역
<p id="p" style="padding:20px;background-color: #666666;color:#fff">
P 영역
<span id="span" style="display:block;padding:20px;background-color: #444444;color:#fff">SPAN 영역</span>
</p>
</div>
var div = document.getElementById("div"),
p = document.getElementById("p"),
span = document.getElementById("span"),
develop1 = document.getElementById("develop1");
// IE8 호환성
if(window.addEventListener){
div.addEventListener("click", function () {
develop1.innerHTML += "div 클릭" + "<br>";
});
p.addEventListener("click", function () {
develop1.innerHTML += "p 클릭" + "<br>";
});
span.addEventListener("click", function () {
develop1.innerHTML += "span 클릭" + "<br>";
});
}else if(window.attachEvent){
div.onclick = function(){
develop1.innerHTML += "div 클릭" + "<br>";
}
p.onclick = function(){
develop1.innerHTML += "p 클릭" + "<br>";
}
span.onclick = function(){
develop1.innerHTML += "span 클릭" + "<br>";
}
}
P 영역 SPAN 영역
<div id="div2" style="padding:20px;background-color: #848484;color:#fff">
DIV 영역
<p id="p2" style="padding:20px;background-color: #666666;color:#fff">
P 영역
<span id="span2" style="display:block;padding:20px;background-color: #444444;color:#fff">SPAN 영역</span>
</p>
</div>
var div2 = document.getElementById("div2"),
p2 = document.getElementById("p2"),
span2 = document.getElementById("span2"),
develop2 = document.getElementById("develop2");
div2.addEventListener("click", function () {
develop2.innerHTML += "div 클릭" + "<br>";
});
p2.addEventListener("click", function () {
develop2.innerHTML += "p 클릭" + "<br>";
});
span2.addEventListener("click", function (event) {
develop2.innerHTML += "span 클릭" + "<br>";
event.stopPropagation();
});
P 영역 SPAN 영역
<div id="div3" style="padding:20px;background-color: #848484;color:#fff">
DIV 영역
<p id="p3" style="padding:20px;background-color: #666666;color:#fff">
P 영역
<span id="span3" style="display:block;padding:20px;background-color: #444444;color:#fff">SPAN 영역</span>
</p>
</div>
var div3 = document.getElementById("div3"),
p3 = document.getElementById("p3"),
span3 = document.getElementById("span3"),
develop3 = document.getElementById("develop3");
div3.addEventListener("click", function () {
develop3.innerHTML += "div 클릭" + "<br>";
});
p3.addEventListener("click", function () {
develop3.innerHTML += "p 클릭" + "<br>";
});
span3.addEventListener("click", function (event) {
develop3.innerHTML += "span 클릭1" + "<br>";
event.stopPropagation();
});
span3.addEventListener("click", function (event) {
develop3.innerHTML += "span 클릭2" + "<br>";
event.stopPropagation();
});
P 영역 SPAN 영역
<div id="div4" style="padding:20px;background-color: #848484;color:#fff">
DIV 영역
<p id="p4" style="padding:20px;background-color: #666666;color:#fff">
P 영역
<span id="span4" style="display:block;padding:20px;background-color: #444444;color:#fff">SPAN 영역</span>
</p>
</div>
var div4 = document.getElementById("div4"),
p4 = document.getElementById("p4"),
span4 = document.getElementById("span4"),
develop4 = document.getElementById("develop4");
div4.addEventListener("click", function () {
develop4.innerHTML += "div 클릭" + "<br>";
});
p4.addEventListener("click", function () {
develop4.innerHTML += "p 클릭" + "<br>";
});
span4.addEventListener("click", function (event) {
develop4.innerHTML += "span 클릭1" + "<br>";
event.stopImmediatePropagation();
});
span4.addEventListener("click", function (event) {
develop4.innerHTML += "span 클릭2" + "<br>";
event.stopPropagation();
});
P 영역 A 영역 네이버 링크
<div id="div5" style="padding:20px;background-color: #848484;color:#fff">
DIV 영역
<p id="p5" style="padding:20px;background-color: #666666;color:#fff">
P 영역
<a id="span5" href="https://www.naver.com" target="_blank" style="display:block;padding:20px;background-color: #444444;color:#fff">
A 영역 네이버 링크
</a>
</p>
</div>
var div5 = document.getElementById("div5"),
p5 = document.getElementById("p5"),
span5 = document.getElementById("span5"),
develop5 = document.getElementById("develop5");
div5.addEventListener("click", function () {
develop5.innerHTML += "div 클릭" + "<br>";
});
p5.addEventListener("click", function () {
develop5.innerHTML += "p 클릭" + "<br>";
});
span5.addEventListener("click", function (event) {
develop5.innerHTML += "a 클릭" + "<br>";
event.stopPropagation();
});
P 영역 A 영역 네이버 링크
<div id="div6" style="padding:20px;background-color: #848484;color:#fff">
DIV 영역
<p id="p6" style="padding:20px;background-color: #666666;color:#fff">
P 영역
<a id="span6" href="https://www.naver.com" target="_blank" style="display:block;padding:20px;background-color: #444444;color:#fff">
A 영역 네이버 링크
</a>
</p>
</div>
var div6 = document.getElementById("div6"),
p6 = document.getElementById("p6"),
span6 = document.getElementById("span6"),
develop6 = document.getElementById("develop6");
div6.addEventListener("click", function () {
develop6.innerHTML += "div 클릭" + "<br>";
});
p6.addEventListener("click", function () {
develop6.innerHTML += "p 클릭" + "<br>";
});
span6.addEventListener("click", function (event) {
develop6.innerHTML += "a 클릭" + "<br>";
event.preventDefault();
});
P 영역 A 영역 네이버 링크
<div id="div7">DIV 영역
<p id="p7">P 영역
<a id="span7" href="https://www.naver.com" target="_blank">A 영역 네이버 링크</a>
</p>
</div>
var div7 = document.getElementById("div7"),
p7 = document.getElementById("p7"),
span7 = document.getElementById("span7"),
develop7 = document.getElementById("develop7");
div7.addEventListener("click", function () {
develop7.innerHTML += "div 클릭" + "<br>";
});
p7.addEventListener("click", function () {
develop7.innerHTML += "p 클릭" + "<br>";
});
span7.addEventListener("click", function (event) {
develop7.innerHTML += "a 클릭" + "<br>";
return false;
});
P 영역 A 영역 네이버 링크
<div id="div8">DIV 영역
<p id="p8">P 영역
<a id="span8" href="https://www.naver.com" target="_blank">A 영역 네이버 링크</a>
</p>
</div>
$(document).ready(function () {
$("#div8").on("click", function () {
$("#develop8").append("div 클릭" + "<br>");
});
$("#p8").on("click", function () {
$("#develop8").append("p 클릭" + "<br>");
});
$("#span8").on("click", function () {
$("#develop8").append("a 클릭" + "<br>");
return false
});
})