2013-06-26 2 views
1

아래 코드는 Ajax 호출을 사용하여 동적으로 생성되고 studentresults이라는 하드 코드 된 div에 배치됩니다.JQuery에서 동적으로 생성 된 데이터에서 click 이벤트 받기

<div id="studentresults" class="row span8 offset2"> 
    <table id="tablestudent" class="table table-striped table-hover center-table"> 
    <thead>Heading for my table</thead< 
     <tbody> 
     <tr id="showstudents"> 
      <td>29041</td> 
      <td>jan</td> 
      <td>jan</td> 
      <td> 
      <a class="btn" href="#">View Results »</a> 
      </td> 
      <td id="29041"> 
      <a id="29041" class="btn showstudent" href="#">Delete Student » </a> 
      </td> 
     </tr> 
     <tr id="showstudents"> 
      .... another dynamic record from Ajax... 
     </tr> 
    </tbody> 
    </table> 
</div> 

잘 작동합니다. 그러나 Delete Student 태그에 대한 또 다른 Ajax 호출을 원합니다. 이 동적 인 내용을 위해 jQuery 클릭 함수를 작성하는 방법을 이해할 수 없습니다.

JQuery와 통화 그러나이 하드 코딩 사업부에서 작동

$('.showstudent').click(function(){ 

alert('In click'); 

}); 

작동하지 않습니다 내가 동적의 경우 동적 <a> 내용

+0

동일한 ID를 가진 요소가 여러 개 있습니다. 그것은 유효한 HTML이 아니므로 id로 요소를 안전하게 선택할 수 있도록 수정해야합니다. – Paulpro

답변

3

에 액세스 할 수있는 방법을 container

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

alert('In click'); 

}); 

요소는 이벤트 전달 기반 이벤트 리스너를 사용해야합니다. 따라서, 이벤트 핸들러는 해당 요소에 부착되지 것이다

는 이벤트 핸들러를 등록 $('.showstudent').click(..)를 사용하여, 상기 실행 시간의 선택을 실행하고, 동적 요소는 그 시간에 존재하지 않을 수

$(document).on('click','.showstudent', function(){ 
    alert('In click'); 
}); 
+0

그 간결한 설명에 대해 고맙습니다. 한 가지 더 묻습니다. 행의 각 의 ID를 어떻게 얻을 수 있습니까? 나는 var id = ($ this) .id를 시도했다. 성공없이. – user2522307

+0

나는 열심히 노력했다 ........ var id = $ (this) .attr ('id'); 나는 각 클릭 된 ID의 태그를 얻을 수 있습니다. Arun에게 감사드립니다. 큰 도움이되었습니다. – user2522307

+0

@ user2522307 당신은'var id = this.id'라고 간단히 말할 수 있습니다. 'this'는 클릭 된 요소입니다 –

관련 문제