728x90

 

$(function() {

$('td').click(function(e){

console.log("event[표준객체]:"+e);

console.log("e.target[표준객체]:"+e.target);

console.log(e.target.firstChild.nodeValue);

console.log("this :"+this);

console.log(this.firstChild.nodeValue);

console.log("e.target[표준객체]--> jQuery객체의 text메소드 호출:"+$(e.target).text());

});

});

$(function); ==> window onload 시 function 등록 

 

javascript 표준객체에서는 jQuery의 함수를 사용할 수 없다.

jQuery 의 함수를 사용하려면 $()로 객체를 Wrapper 객체로 만들어주어야 한다. 

 

$('td').click(function); ==> td태그의 click 이벤트 리스너에 function 등록 

 

e = 발생 이벤트 

e.target = 이벤트가 발생한 객체

$(e.target) = 이벤트가 발생한 객체의 랩퍼 객체 

 

 

$('#txtInput').keyup(function(e){

console.log("key:"+e.key);

console.log("keyCode:"+e.keyCode);//ASCIIcode

$('#txtKeyCode').val(`${e.key}[${e.keyCode}]`);

});

키 이벤트의 프로퍼티 key, keyCode

 

key = 입력한 키

keyCode = 입력한 키의 아스키코드

 

key는 문자 뿐만아니라 enter, spacebar, shift, 등 모든 키를 받는다. 

 

$('').val() == Element.value 

val(); = get

val(param); = set param in element.value

 

 

$().text() == element.innerText

$().html() == element.innerHTML

$(e.target).html('jQuery에서 제공하는 Event 핸들링 메소드'+ ++clickCount);

 

$('#mouseArea').on('mouseenter mouseleave',function(){

if(e.type=='mouseenter'){

enterCount++;

}else if(e.type=='mouseleave'){

leaveCount++;

}

});

 

.on() 이벤트 바인딩 함수

지금까지 나온 .click(), .keyup() 등은 특정 이벤트를 지정하여 그 이벤트에 대해서만 처리하는 리스너를 만드는데

.on() 함수는 어떤 타입의 이벤트라도 처리할 수 있고, 여러 이벤트를 처리할 수도 있다.

 

위 예제는 mouseenter 또는 mouseleave 이벤트가 발생하면 실행할 함수를 정의했는데 e.type으로  이벤트의 타입을 

구분하고 각 이벤트마다 다른 처리를 하였다. 

 

on(event, [childSelector, data,] function) 

event와 event를 처리할 function이 필수 인자 

특정 자식객체에게만 접근할 때는 childSelector, function을 수행하는데 필요한  data가 있다면 data를 추가로 입력할 수 있다.

$('#btnAdd').click(function(){

let item_no =$('li').length;

$('ul').append(`<li>list item ${item_no}</li>`);

});

$('ul').on('click','li',function(e){

alert($(e.target).text());

});

 

버튼을 클릭하면 ul 자식으로 li객체가 생성된다. 

li객체는 최초 로딩때는 존재하지 않다가 ul 객체에 이벤트가 발생하면 동적으로 생성되는 객체이다. 

이렇게 동적으로 생성되는 객체에 이벤트 리스너를 등록하려면 on함수를 사용한다. 

$('ul').on('click','li',function(e){...});

ul객체에 click 이벤트를 등록함과 동시에 그 자식 li도 click 이벤트를 등록한다. 

 

 

일회용 이벤트 리스너 만들기

one() 함수 사용

$('li').one('click',function(e){

alert($(e.target).text());

});

한번 이벤트를 처리하고 나면 이벤트 리스너를 삭제하여 더이상 이벤트를 처리하지 않는다.

 

 

'Javascript' 카테고리의 다른 글

js 모듈 의존성 줄이기  (0) 2023.09.24
AJAX using JQuery  (0) 2023.09.24
Javascript this  (0) 2023.09.23
JQuery effect  (0) 2023.09.22
JQuery 입문  (1) 2023.09.22

+ Recent posts