728x90
300x250
SMALL
라이브 방식 이벤트 등록
라이브 방식으로 이벤트를 등록하면 아직 존재 하지 않는 요소에 이벤트를 등록할 수 있다.
만약 click 이벤트를 사용하면 요소가 동적으로 추가 또는 삭제 될 경우 이벤트도 같이 등록 또는 제거를 해줘야 하기 때문에 번거롭다.
이럴때 사용할 수 있는 기능이 라이브 이벤트 등록이다.
$대상.on("이벤트명","대상자식노드", 이벤트리스너(){
})
위의 구문을 실행하면 $대상의 자식노드중에서 대상자식노드에만 이벤트를 등록한다는 뜻이된다.
var $member=null;
var $memberName=null;
var $clickItem=null;
$(document).ready(function(){
init();
initEvent();
})
function init(){
$member=$(".member");
$memberName=$("#memberName");
}
function initEvent(){
$("#add").click(function(){
add();
})
$member.on("click","li",function(){ //라이브 방식 이벤트 등록
addClass($(this));
})
}
function addClass($item){
if($clickItem!=null){
$clickItem.removeClass("on");
}
$clickItem=$item;
$clickItem.addClass("on");
}
function add(){
memberName = $memberName.val();
$member.append(`<li>${memberName}</li>`);
}
위의 예시에서 아래 코드가 라이브 방식 이벤트 등록 하는 방법 이다.
$member.on("click","li",function(){ //라이브 방식 이벤트 등록
addClass($(this));
})
$member의 자식 노드 중에서 li에만 click이벤트를 등록
click 할경우 함수 안에 내용 실행
728x90
반응형
LIST
'javaScript > jQuery' 카테고리의 다른 글
[jQuery]목록 리스트 위로 아래로 이동 (0) | 2023.02.09 |
---|---|
[jQuery] 클릭한 요소 텍스트 수정 (0) | 2023.02.06 |
[jQuery]선택한 리스트에 클래스 추가 (0) | 2023.02.03 |
[jQuery]input 입력 값 받아서 리스트로 등록 (0) | 2023.02.02 |
[jQuery]태그 내용 삭제 html() remove()의 차이 (0) | 2023.02.01 |
댓글