2011-12-18 5 views
2

아래와 같이 ajax를 사용하려고합니다.jQuery ajax, 응답 텍스트에서 다시 호출하는 방법

jQuery 코드 :

$("a.generate").click(function(){ 
    $.ajax({ 
     data: {tag: $(this).html()}, 
     success: function(data){ 
      $("#terms div.content").html(data); 
     } 
    }); 
}); 

내가에서 호출 링크 :

을 : 전화 후

<a href="#" class="generate"> tag </a> 

는 아약스는 내가 다시 아래와 같이 호출 할 수있는 링크를로드

<a href="#" class="generate"> term </a> <a href="#" class="generate"> term2 </a> 

아약스가로드 된 데이터에서 링크를 클릭하면 아약스가 더 이상로드되지 않습니다.

편집 : 나는 아래처럼() 메소드에 코드를 편집 한 후, 코드가하는

아무것도 : 해결

$("body").on('click', 'a.generate', function(){ 
    $.ajax({ 
     data: {tag: $(this).html()}, 
     success: function(data){ 
      $("#terms div.content").html(data); 
     } 
    }); 
}); 

:

JQuery와 버전, 1.6.2 버전의 헤드 태그를 추가 했으므로 이제는 버전을 업데이트했습니다. 다시 한 번 감사드립니다.

답변

4

on을 사용하여 이벤트 처리기를 추가하십시오.

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

이렇게하면 클릭 한 모든 앵커가 연결됩니다. 더 선택하기 위해, 단지 두 번째 매개 변수의 선택에 통과

$(document).on("click", "a.someClass", function(){ 
}); 

에서 이벤트에 대한 live -a 일반적인 제안 jQuery를이-됩니다 사용되지 않는 것을 참고; on은 동적으로 추가 된 콘텐츠에서도 사용할 수있는 이벤트를 추가하는 가장 좋은 방법입니다.

또한 jQuery 1.7에 on이 추가되었으므로 이전 버전을 사용하는 경우 delegate을 사용해야합니다. selecter 및 이벤트의 순서가 반대로되어 있습니다 : 여기

$(document).delegate("a.someClass", "click", function(){ 
}); 

슈퍼 빠른 응답을위한 docs for on()

+0

빠른 응답을 주셔서 감사합니다. – tewoos

+0

나는 OP가 이것을 전체 문서의 모든 단일 링크에 연결하려고하는지 의심 스럽다. '$ (document) .on ("click", ".generate", function() {});은 더 이해하기 쉽습니다. – jfriend00

+0

@tewoos - 문제 없음 - 당신을 위해 일하기를 희망합니다 –