질문Q #14796
ajax로 가지고온 데이터에 jquey 이벤트를 사용할수 없나요?
정수리2016-08-26 13:10:24

ajax통신을 통해 데이터를 가지고 와서 밑의 코드처럼 <tr><td>를 사용하여 화면에 출력하였습니다. 

코드에 보시면 세부사항과 , 세금계산서 부분에 <p>태크로 감싸고 <p name="tese2">,<p name="tese3"> 이라고 해준 후

jquery를 통해  click 이벤트를 연결해줬습니다 그리고 웹에서 클릭을 해보니 아무 반응도 없더라구요 ;;

파이어버그 콘솔창에는 아무 오류도 안뜨고;; ajax통신으로 가져온  데이터에 jquey 이벤트를 연결 할수 없는 건가요?

success:function(data){
	var output = '<table border="1"><tr><td><input type="hidden" name="cf_pk" value="'+data['cf_pk']+'"/><p class="test2">세부사항</p></td><td>요청등록일</td><td>'+data['cf_tax_date']+'</td><td>요청자</td><td>'+data['cf_tax_name']+'</td><td>발행예정일</td><td>'+data['cf_tax_bh']+'</td>';
	       output += '<td>재발행횟수</td><td>'+data['cf_tax_re']+'</td></tr>';
	       output +='<tr><td><p class="test3">세금계산서</p></td><td>수신메일주소</td><td>'+data['cf_tax_email']+'</td><td>수신자부서</td><td>'+data['cf_tax_team']+'</td><td>수신자</td><td>'+data['cf_tax_rename']+'</td>';
	       output +='<td>수신확인</td><td>'+data['cf_tax_cf']+'</td></tr';
	       output +='<tr><td>수납</td></tr><td>메모</td><td>'+data['cf_tax_memo']+'</td></tr></table>';

		$('.test').append(output);
					},

$('.test2').click(function(){
		alert('세부사항');
	});

	$('.test3').click(function(){
		alert('세금계산서');
	});

 

답변4
#1 taegon 2016-08-26 13:16:46
새로 가져온 데이터를 바인딩 하실려면 click 이벤트가 아닌 on()이나 live()로 해주시면 됩니다. API에 대한 설명은 jquery API를 참고하세요~
#2 닉 2016-08-26 13:27:46

live는 더이상 사용되지 않으니 on으로 ... ㄱㄱ 예제소스

$(document).on("click",".element" ,function(){
   alert();
});

 

#3 정수리 2016-08-26 13:35:27

@taegon

아 그렇군요;; 그것 모르고 계속 click 만찾고있었네요  감사합니다 ㅜㅜ 덕분에 해결했네요

#4 kaido 2016-08-26 13:49:38

정확하게는 on 과 live 는 jquery 버전 마다 다릅니다.

그리고

p태그에 name 이라고 적고 클래스를 호출 하고 있습니다.
<p name="tese2"> 


<p class="tese2">