동적으로 생성된 Html 태그는 일반적인 이벤트 처리가 불가능하다.
이 때문에 동적으로 생성된 태그는 별도의 이벤트 처리를 해줘야 된다.
$("#appendBtn").click(function(){
var tag = "<input type='button' id='btn' value='버튼' />";
$("body").append(tag);
});
$("#btn").click(function(){
alert("click");
});
위 소스는 appendBtn을 클릭하면 Body 안에 input 태그를 동적으로 생성해준 뒤 동적으로 생성된 input 태그에 이벤트를 걸어 테스트해보는 소스이다. 소스를 실행하면 #btn click 이벤트가 실행이 안되는 걸 확인할 수 있다.
해결법
$(document).on("click","#btn",function(){});
위 on 함수로 이벤트를 걸어주면 동적으로 생성된 태그에 이벤트를 처리할 수 있다.
$("#appendBtn").click(function(){
var tag = "<input type='button' id='btn' value='버튼' />";
$("body").append(tag);
});
$(document).on("click","#btn",function(){
alert("click");
});
위처럼 코드를 작성하면 #btn 이벤트 처리가 되는 걸 확인할 수 있다.
'[공부용]참고 사이트 모음 > [jQuery]' 카테고리의 다른 글
[jQuery] 동적 테이블 생성하기 (feat.append()) (0) | 2020.11.03 |
---|---|
jquery 로 input 값 포맷팅 (0) | 2020.10.23 |
[제이쿼리] jQuery each (jQuery 반복문) (0) | 2020.09.25 |
[Ajax] async 비동기식 처리와 동기식 처리 (0) | 2020.09.23 |
id, class, name 속성의 차이 (0) | 2020.09.16 |