2010-02-11 4 views
2

DOM에 나중에 추가되는 모든 일치하는 요소에 대해 다음과 같이 선언 할 수있는 방법이 있습니까? 가상 jQuery 지속 메소드

$("a.my-class").persist().replaceWith("<span>Replaced</span>"); 

가의 라인을 따라

$("a.my-class").replaceWith("<span>Replaced</span>"); 

뭔가 ... (지속 내가 무엇을 달성 할 싶습니다 전달 희망, 가상의 방법입니다.) JQuery와의

+0

을 나는 아직도 완전히 이해하지 확인하십시오. 당신이 묘사하는 방식으로 (이론적으로) 지속성이 존재한다면, 두 번째 호출은 그것을 비 웁니다! –

+0

그럼 너는 내가 이렇게 말 할까? $ (". my-class"). 영구 (function() {$ (this) .replaceWith (" 대체 됨")}); – jerome

답변

0

live() 방법 비슷한 일을하지만 이벤트를위한 것입니다.

당신은 아마도 라이브 (사용할 수 있습니다)와로드 이벤트는 (검증되지 않은) 같은 것을 찾고있는 무엇을 달성하기 위해 :

$("a.my-class").live('load',function(){ 
    $(this).replaceWith("<span>Replaced</span>"); 
}); 
+0

이벤트를 기반으로하는 페이지 재로드가 없습니다. DOM 요소가 AJAX를 통해 추가되고 있습니다. – jerome

+0

위의 코드는 페이지로드가 아닌 AJAX ('a.my-class')를 통해 추가 한 요소에로드 이벤트로드를 추가합니다. 내가 말했듯이 그것은 테스트되지 않았다. – Fermin

1

정확히 당신이 원하는 것을 같은 방법이 아니라, 경우 내용은 jQuery를 AJAX 방법을 사용하여 추가되고, 당신이 사용할 수 있습니다

$("<div></div>").ajaxSuccess(function(){ 
    $("a.my-class").replaceWith("<span>Replaced</span>"); 
}); 

을 그리고이 코드는 후 모든 성공 AJAX 요청을 실행, 요청이 jQuery를 $.ajax 호출을 사용하여 만들어 제공 (의 inclu ding $.post 또는 $.get). 페이지에서 한 번만 호출하면 AJAX 호출에서 트리거됩니다.

당신이 교체가 너무 빨리 일어나고에 문제가 발생하는 경우 :

$("<div></div>").ajaxSuccess(function(){ 
    window.setTimeout(function(){ 
     $("a.my-class").replaceWith("<span>Replaced</span>"); 
    }, 250); 
}); 
관련 문제