๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Front-End/jQuery

jQuery ์ด๋ฒคํŠธ ๋“ฑ๋ก, ์‚ญ์ œ

by bamDal 2022. 6. 3.

jquery

 

 

jQuery ์—์„œ๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

jQuery์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฒคํŠธ๋Š” ์ข…๋ฅ˜๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ๋‹ค. 
๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ช‡๊ฐ€์ง€

jQuery ์ด๋ฒคํŠธ ์ข…๋ฅ˜

์ด ์™ธ์— ๋‹ค๋ฅธ ์ด๋ฒคํŠธ๋ฅผ ์•Œ๊ณ ์‹ถ๋‹ค๋ฉด
API ์‚ฌ์ดํŠธ ์—์„œ events ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋œ๋‹ค.

 

 

' ์ด๋ฒคํŠธ ๋“ฑ๋ก '

์ด๋ฒคํŠธ ๋“ฑ๋ก ๋ฐฉ๋ฒ•
1. $(selector).์ถ”๊ฐ€ํ• ์ด๋ฒคํŠธ(์‹คํ–‰ํ• ํ•จ์ˆ˜)
2. 
$(selector).on("์ถ”๊ฐ€ํ•  ์ด๋ฒคํŠธ",์‹คํ–‰ํ•  ํ•จ์ˆ˜)

 

1. $(selector).click(function(){});

  • .click() : ์ถ”๊ฐ€ํ•  ์ด๋ฒคํŠธ
  • function(){} : ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์‹คํ–‰ํ•  ํ•จ์ˆ˜

 

//hover = mouseenter + mouseleave
		$("#overzone").hover(
			function(){
				$(this).css({"background-color":"red"});
			},
			function(){
				$(this).css({"background-color":"green"});
			}
		);

=> id๊ฐ€ overzone ์ธ ์š”์†Œ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ค๋ฒ„ํ•˜๋ฉด ์ด ์š”์†Œ(this) ์— css ๋ฅผ ์ ์šฉํ•œ๋‹ค.

 

 

2. $(selector).on("click",function(){});

  • on์œผ๋กœ ์ƒ์„ฑํ•œ ์ด๋ฒคํŠธ๋Š” off๋ฅผ ํ†ตํ•ด ํ‚ค๊ณ  ๋Œ ์ˆ˜ ์žˆ๋‹ค.
  • "click" : ์ถ”๊ฐ€ํ•  ์ด๋ฒคํŠธ
  • function(){} : ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์‹คํ–‰ํ•  ํ•จ์ˆ˜

 

$("p").on("dblclick",function(e){
    $(this).css({'color':'blue'});
});

pํƒœ๊ทธ์ธ ์š”์†Œ๋ฅผ ๋”๋ธ”ํด๋ฆญํ•˜๋ฉด ์ด ์š”์†Œ(this)์— css๊ฐ€ ์ ์šฉ๋œ๋‹ค.

 

1)  pํƒœ๊ทธ์ธ ์š”์†Œ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ด๋‹ค๋ณด๋‹ˆ ํด๋ฆญํ•œ ์š”์†Œ๋งŒ ๋ฐ”๋€Œ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„  2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

$("p").on("click",function(e){
			console.log(e);
			//$('p').css({'color':'orange'}); // ํด๋ฆญํ•œ ์š”์†Œ๋งŒ ๋ฐ”๋€Œ์–ด์•ผ ํ•œ๋‹ค. -> 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•
			//1. e.target ์ด์šฉ **
			//$(e.target).css({'color':'orange'});
			//2. this๋ฅผ ์ด์šฉ *
			$(this).css({'color':'orange'});

		});

$('p').css({'color':'orange'}); ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  pํƒœ๊ทธ๊ฐ€ orange ์ƒ‰์œผ๋กœ ๋ฐ”๋€๋‹ค.

1. e.target ์ด์šฉ
$(e.target).css({'color':'orange'}); 

2. this ์ด์šฉ
$(this).css({'color':'orange'});

 

2)  on์„ ์ด์šฉํ•ด์„œ ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ ๋“ฑ๋กํ•˜๊ธฐ

$("#mousezone").on({
    mouseenter:function(e){
        $(this).html('๋งˆ์šฐ์Šค๊ฐ€ ๋“ค์–ด๊ฐ„ ์ƒํƒœ');
    },
    mouseleave:function(e){
        $(this).html('๋งˆ์šฐ์Šค๊ฐ€ ๋‚˜๊ฐ„ ์ƒํƒœ');
    },
    mousedown:function(e){
        $(this).html('๋งˆ์šฐ์Šค๊ฐ€ ๋ˆŒ๋ฆฐ ์ƒํƒœ');
    },
    mouseup:function(e){
        $(this).html('๋งˆ์šฐ์Šค๋ฒ„ํŠผ ๋—€ ์ƒํƒœ');
    }
});

mouseenter : function(){}
์ด๋ฒคํŠธ์ข…๋ฅ˜ : ์‹คํ–‰ํ•  ํ•จ์ˆ˜

 

' ์ด๋ฒคํŠธ ์‚ญ์ œ '

on์œผ๋กœ ์ƒ์„ฑ๋œ ์ด๋ฒคํŠธ๋Š” off๋กœ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.

- on์œผ๋กœ ์ด๋ฒคํŠธ ๋“ฑ๋ก

//$(selector).on("์ถ”๊ฐ€ํ•  ์ด๋ฒคํŠธ",์‹คํ–‰ํ•  ํ•จ์ˆ˜)
$("#btn").on("click",function(){ // ์ต๋ช…ํ•จ์ˆ˜ or ์ฝœ๋ฐฑํ•จ์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
    $("body").append("<button class='newBtn' onclick='clickEvt()'>click</button>");
    $("body").append("<button class='newBtn2'>click2</button>");
});

 

- off๋กœ ์ด๋ฒคํŠธ ์‚ญ์ œ

// ์ด๋ฒคํŠธ ์‚ญ์ œ(on์œผ๋กœ ์ƒ์„ฑ๋œ ์ด๋ฒคํŠธ๋Š” off๋กœ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.)
$('#evtDel').on('click',function(){
    $('#btn').off('click');
});

์œ„์— ์•„์ด๋””๊ฐ€ btn ์ธ ์š”์†Œ('๋ฒ„ํŠผ ์ƒ์„ฑ' ๋ฒ„ํŠผ)์— ํด๋ฆญ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•ด๋†จ๋Š”๋ฐ 
์•„์ด๋””๊ฐ€ evtDel์ธ ์š”์†Œ('์ด๋ฒคํŠธ ์‚ญ์ œ' ๋ฒ„ํŠผ) ์„ ํด๋ฆญํ•˜๋ฉด '๋ฒ„ํŠผ ์ƒ์„ฑ' ๋ฒ„ํŠผ์— ๋“ฑ๋กํ•ด๋†จ๋˜ ์ด๋ฒคํŠธ๋ฅผ off๋กœ ์‚ญ์ œํ•œ๋‹ค.

'๋ฒ„ํŠผ ์ƒ์„ฑ'  ๋ฒ„ํŠผ์—๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด click, click2 ๋ฒ„ํŠผ์ด ์ƒ์„ฑ๋˜๋Š” ์ด๋ฒคํŠธ๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š”๋ฐ
'์ด๋ฒคํŠธ ์‚ญ์ œ' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ด ์ด๋ฒคํŠธ๊ฐ€ ์ œ๊ฑฐ๋˜์–ด 
์ƒ์„ฑ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋„ ๋”์ด์ƒ ๋ฒ„ํŠผ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š”๋‹ค.