Javascript&Jquery

stopPropagation()

알 수 없는 사용자 2012. 3. 25. 20:55

html 코드

Hanb Media


이벤트 걸기

a 클릭시 링크되는 기본기능을 막고, 클릭하면 background blue로 변하게..
!! 나는 a 만 클릭했는데 h1 도 이벤트 전달을 받아서 background 색이 변하는것을 볼수 있다. 

$(document).ready(function(){
	$('a').click(function(event) {
		$(this).css('background-color', 'Blue');
		event.preventDefault();
	});
	$('h2').click(function() {
		$(this).css('background-color','Red');
	});
});



이벤트_h2 에 이벤트전달이 되지 않도록

stopPropagation() 메서드를 이용

$(document).ready(function(){
	$('a').click(function(event) {
		$(this).css('background-color', 'Blue');
		event.stopPropagation();
		event.preventDefault();
	});
	$('h2').click(function() {
		$(this).css('background-color','Red');
	});
});



이벤트_좀더 간단하게

return false; 를 사용하면 자동으로 prevetnDefault()stopPropagtion()을 동시에 사용하는것으로 인식함

$(document).ready(function(){
	$('a').click(function(event) {
		$(this).css('background-color', 'Blue');
		return false;
	});
	$('h2').click(function() {
		$(this).css('background-color','Red');
	});
});



관련url : 이벤트 캡처링, 버블링
http://sexybone.tistory.com/243
http://sexybone.tistory.com/238