appendTo 질문
본문
아래 코드처럼 appendTo을 이용해서 추가를할려고하는데 이상하게 두번씩 추가되네요..
뭐가 문제일까요..ㅜㅜ
<div id="p_scents">
<p>
<label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt" value="" placeholder="Input Value" /></label>
</p>
</div>
<script>
$(function() {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
$('#addScnt').live('click', function() {
$('<p>'+ i +'<a id="remScnt">삭제</a></p>').appendTo(scntDiv);
i++;
return false;
});
$('#remScnt').live('click', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
</script>
!-->
답변 2
id="addScnt" 를 가지고 있는 태그를 검색해보세요. 여러개일 가능성이 높습니다.
1. jQuery에서 .live()는 삭제되었습니다. .on()으로 대체하시는 것을 권장드립니다.
2. .size() 역시 삭제되었습니다. 되도록이면 .length로 대체하시는 것을 권장드립니다.
3. 엘리먼트의 id는 유니크값이어야 합니다. 작성하신 코드로 보아 #remScnt는 여러 개가 존재하게 되는데, 동일한 id를 가진 엘리먼트가 여러 개 존재하게 되면 스크립트가 정상적으로 작동하지 않을 가능성이 높습니다. class 등 다른 어트리뷰트를 사용하시는 것을 권장드립니다.
올려 주신 코드로 페이지 작성해서 테스트해보니 정상적으로 1개씩 추가됩니다. 올려 주신 부분에는 위에 제가 나열한 문제들 외에는 특별히 문제가 없습니다. 기재하지 않은 부분에 오류가 있지 않나 생각합니다.
답변을 작성하시기 전에 로그인 해주세요.