¾È±Ô °øºÎ¹æ

Javascript & JQuery & CSS > bind(), delegate(), live(), on() - À̺¥Æ® ¹ÙÀεù ó¸®

µî·ÏÀÏ : 2017-07-04 13:04 Á¶È¸¼ö : 34,306

À̹ø Àå¿¡¼­´Â jQuery ¿¡¼­ bind(), .delegate(), .live(), .on() ÇÔ¼ö¿¡ ´ëÇؼ­ ¾Ë¾Æº¸°Ú½À´Ï´Ù.

jQueryÀÇ À̺¥Æ® ¹ÙÀεù ¸Þ¼Òµå´Â Á¶±Ý ¸¹½À´Ï´Ù.

ºñ½ÁÇÑ ±â´ÉÀ» Çϴµ¥ ¸Þ¼Òµå°¡ ¸¹À¸´Ï ¾î¶²°É ½á¾ß Çϳª ÇÞ±ò¸®±â ¸¶·ÃÀÌÁö¿ä..

³ªÁßÀÌ ¶Ç ÇÞ±ò¸®´Ï±ñ ÀÌÂü¿¡ Á¤¸® ÇØ¾ß °Ú½À´Ï´Ù.
1. bind()

.bind( À̺¥Æ®Å¸ÀÔ, [, À̺¥Æ® µ¥ÀÌÅÍ], Çڵ鷯(À̺¥Æ®°´Ã¼) )

.bind() ¸Þ¼Òµå´Â ±âº»ÀûÀ¸·Î ¿¤¸®¸ÕÆ®¿¡ À̺¥Æ®¸¦ ¹ÙÀεù(¼±¾ð, ÇÒ´ç)À» ÇØÁØ´Ù. À̺¥Æ® ŸÀÔÀº Ŭ¸¯, ¸¶¿ì½º¿À¹ö/¾Æ¿ô µîµî~

´Ù¾çÇÑ ºê¶ó¿ìÀúÀÇ À̺¥Æ®µéÀÌ µé¾î°¡°í, À̺¥Æ® µ¥ÀÌÅÍ Ãß°¡ µ¥ÀÌÅÍÀε¥ Àß ¾²ÀÌÁö ¾ÊÀ¸´Ï Æнº~~~~ ¿É¼ÇÀÌ´Ù.

¸¶Áö¸·À¸·Î Çڵ鷯´Â ÇØ´ç À̺¥Æ®°¡ °¨Áö µÉ ¶§ ½ÇÇà µÉ ÇÔ¼ö(¸í·É¾îµé)ÀÌ µÇ°Ú´Ù.

¿©±â¼­ ÇÞ°¥¸®´Â°Ç .click() °°Àº ¸Þ¼ÒµåµéÀÌ´Ù.
 

	$('a').bind('click',function(){
		alert('Ŭ¸¯!');
	});

	$('a').click(function(){
		alert('Ŭ¸¯!');
	});


À§ÀÇ ¿¹Á¦ 2°¡Áö´Â bind() °ú click() À̺¥Æ®¿¡ ´ëÇÑ Ç¥Çö ¹æ¹ý ÀÌ´Ù.

À§ÀÇ ¿¹Ã³·³ .bind()¿Í .click()ÀÇ Â÷ÀÌ´Â ¹«¾ùÀϱî?

°á·ÐºÎÅÍ ¸»ÇÏÀÚ¸é, Â÷ÀÌ°¡ ¾ø´Ù!

.click()Àº .bind('click') À̶õ°É ¾²±â ½±°Ô clickÀ¸·Î Ç¥±âÇØ µÐ °Í°ú °°´Ù. click À̺¥Æ®´Â ÀÚÁÖ ¾²´Ï º¸±â ÁÁ°Ô~ .click() ¸Þ¼Òµå·Î »©µÐ°Í!

.mouseover() ¶ó´ø°¡, .keyup()µîµµ .bind()¸¦ ¾²±â ½±°Ô ¸Þ¼Òµå·Î »©µÐ°Í »ÓÀÌ´Ù. °á·ÐÀº ¾î¶»°Ô ¾²´ø °°´Ù.

2. delegate()

.delegate( ¼¿·ºÅÍ, À̺¥Æ®Å¸ÀÔ, Çڵ鷯(À̺¥Æ®°´Ã¼) )

ºÎ¸ðÀÇ ¿¤¸®¸ÕÆ®¿¡¼­ ¹ß»ýÇÑ À̺¥Æ®´Â ÀڽĿ¡°Ô±îÁö ÀüÇØÁö´Âµ¥, À̶§ ¾î¶² ÀÚ½ÄÀÎÁö üũÇؼ­ ÇÊÅ͸¦ ÇØÁÖ´Â ±â´ÉÀÌ µÇ°Ú´Ù.

bind()ó·³ ¿¹·Î º¸¸é¼­ Ç®¸é ½¬¿îµ¥,
 

			$('div').bind('click',function(e){
				if(e.taget.tagName=='a') alert('Ŭ¸¯!');
			});

			$('div').delegate('a','click',function(){
				alert('Ŭ¸¯!');
			});



À§ µÎ°³ÀÇ ¼Ò½º´Â ±â´É»ó¿¡ Â÷ÀÌ°¡ ¾ø´Ù. ±×³É µÑÁß¿¡ ¸¶À½¿¡ µå´Â°É ¾²¸é µÇ´Â°Å´Ù.

´Ù¸¸ Â÷ÀÌ°¡ ÀÖ´Ù¸é, À§ÀÇ .bind()¿¡¼­´Â thisÀÇ Æ÷ÀÎÅÍ°¡ div°¡ µÇ°í, .delegate()¿¡¼­ÀÇ this´Â a°¡ µÇ°Ú´Ù.

¾îÂîµÇ¾ú°Ç À§ÀÇ .click()ÀÇ ¿¹Ã³·³ .bind( ¾î¼°í Àú¼°í )¸¦ ¾²±â ½±°Ô .delegate()·Î ÇصаŴÙ.

3. live()

À§¿¡ ¼³¸íÇß´ø .bind()´Â µ¿Àû ¿¤¸®¸ÕÆ®¿¡ ´ëÇÑ À̺¥Æ® ¹ÙÀεùÀº ¾ÈµÈ´Ù.
 
jQuery¸¦ ÅëÇØ .append('Ŭ¸¯') µî°ú °°ÀÌ µ¿ÀûÀ¸·Î »ý¼ºµÇ¾ú´Ù¸é, .bind()¸¦ ¹ÙÀεùÇÏ´Â ½ÃÁ¡¿¡ ¾ø¾ú´ø¾Ö´Ï±ñ »õ·Ó°Ô ¹ÙÀεù ÇÏÁø ¾Ê´Â´Ù.
  
ÇÏÁö¸¸, µ¿ÀûÀ¸·Î »ý¼ºµÈ°Íµµ À̺¥Æ®°¡ ÇÊ¿äÇÒ °æ¿ì°¡ Àִµ¥ À̶§ .live()¶ó´Â ¸Þ¼Òµå°¡ ¿ì¸®¸¦ ±¸¿øÇØÁØ´Ù!~


.live( À̺¥Æ®, Çڵ鷯(À̺¥Æ®°´Ã¼) )

»ç¿ë¹ýÀº .bind()¿Í °°Áö¸¸ ¸Þ¼Òµå À̸§Ã³·³~ ½Ç½Ã°£! ¹ÙÀεùÀÌ °¡´ÉÇÏ´Ù.


4. on()
.on( À̺¥Æ® [, ¼¿·ºÅÍ ] [, µ¥ÀÌÅÍ ], Çڵ鷯(À̺¥Æ®°´Ã¼) )

jQuery¿¡¼­ À̺¥Æ®¸¦ ¹ÙÀεù Çϴµ¥ ¸¹Àº ¹æ¹ýÀÌ Á¸ÀçÇؼ­ ÇÞ±ò¸°´Ù.

±×·¡¼­ ÇÞ±ò¸®Áö ¸»¶ó°í ÅëÇÕ À̺¥Æ® ¹ÙÀεù ¸Þ¼ÒµåÀÎ .on()À» 1.7¿¡¼­ Ãß°¡ ÇØ ÁÖ¾ú´Ù. (±×·¨´õ´Ï ´õ ÇÞ±ò¸®³× ¤¾¤¾)

°á·ÐÀº .on()Àº .delegate() + .live() ¹öÀüÀÌ µÇ°Ú´Ù.

±×·¡¼­ 1.7 ÀÌ»óÀÇ ¹öÀüÀ» »ç¿ëÁßÀÌ°í, µ¿Àû ¹ÙÀεùÀ» ¿äÇÑ´Ù¸é,
 

			$(document).on('click','a',function(){
			    alert('Ŭ¸¯!');
			});
			
 

	$("#test1 li a" ).on("click", function() {
		alert("click ÇÏ¿´½À´Ï´Ù.");
	});

 

	$("#select1").on({
		"click": function() { 
			alert("selected1 À» click ÇÏ¿´½À´Ï´Ù");
		},
		"change":function() { 
			alert("selected1 À» change ÇÏ¿´½À´Ï´Ù");
		}
	});


	//¾Æ·¡¿Í °°Àº ÇüÅ·εµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

	$( "div.test" ).on({
		click: function() {	alert("click");	}, 
		mouseenter: function() { alert("mouseenter"); }, 
		mouseleave: function() { alert("mouseleave"); }
	});
 

	function notify() {
	  alert( "clicked" );
	}

	$( "button" ).on( "click", notify );

 

	function greet( event ) {
	  alert( "Hello " + event.data.name );
	}

	$( ".btnsubmit" ).on( "click", {
	  name: "Karl"
	}, greet );

	$( ".btnsubmit" ).on( "click", {
	  name: "Addy"
	}, greet );

	//À§¿Í °°Àº ÇüÅ·Πµ¥ÀÌÅ͸¦ ³Ñ±æ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ¿Í°°Àº ¿©·¯°¡Áö ÇüÅ·Π»ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù.

µ¿ÀûÀÎ ¹ÙÀεùÀ̱⿡ ±»ÀÌ $(document).ready() ¾È¿¡ ÀÖÀ» ÇÊ¿äµµ ¾ø´Ù.

¸¶Áö¸·À¸·Î Á¤¸®ÇÏÀÚ¸é,
 

			.bind() ¿Í .delegate() ´Â À̺¥Æ® ¹ÙÀεùÀ» ÇÏ´Â ±â´ÉÀº °°Áö¸¸ thisÀÇ Æ÷ÀÎÅÍ°¡ ´Ù¸£´Ù.

			.live()´Â µ¿ÀûÀ¸·Î À̺¥Æ®¸¦ ¹ÙÀεù ÇØÁØ´Ù.

			.on()Àº 1.7 ÀÌ»ó ¹öÀü¿¡¼­ ³ª¿Â 3°¡Áö ÅëÇÕ ¸Þ¼ÒµåÀÌ´Ù.

			1.7ÀÌ»óÀÌ¸é °í¹Î¸»°í .on()À» ½áÁÖÀÚ~
 
¡Ø Ȥ½Ã µµ¿òÀÌ µÇ¼Ì´Ù¸é ´ñ±Û¿¡ ÇѸ¶µð ³²°ÜÁÖ¼¼¿ä!
ÀÛ¼ºÀÚ   ºñ¹Ð¹øÈ£
ÀÚµ¿±Û ¹æÁö     (ÀÚµ¿±Û ¹æÁö ±â´ÉÀÔ´Ï´Ù.)
³»¿ë   ´ñ±Û´Þ±â 
À̸ÞÀÏ ¹®ÀÇ : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.