2017-12-15 4 views
-1

내가 동적으로 다음과 같은 클래스 요소 만든 분명히동적으로 생성 된 요소에 jQuery를 적용 할 수있는 방법이 있습니까?</p> <pre><code><span class="text">Hello</span> </code></pre> <p>및 jQuery를 : (없는 이벤트 리스너)

function changeText() { 
    var oldText = $(this).text(); 
    $(this).text(oldText + " There"); 
} 

$(function() { 
    $(".text").each(function(){ 
     changeText.apply(this); 
    }) 
}) 

을, 이것은 실제로 무슨 일이 일어나고 있는지의 단순화 된 버전이지만 기본이다 거기 있어요. 이벤트 리스너를 사용하지 않아도 동적으로 생성 된 요소에이 규칙을 적용 할 수 있습니까?

여기서 문제는 이러한 ".text"요소에 대한 특정 위치가 없다는 것입니다. 우리가 알 수있는 유일한 장소는 몸 안에 있습니다. 나는 우리 몸에 mutationObserver를 사용한다. 그것은 성과에 과세하지 않겠는가? 이

$dynamicElement.find(".text").each(function(){ 
    changeText.apply(this); 
}) 
+0

가장 좋은 방법은 그 동적 요소의 생성을 담당하는 기능을 변경하는 것입니다. –

+0

동적 요소 작성을 담당하는 코드를 변경할 수 있습니까? –

+0

불행히도 아니요, 오래된 프레임 워크를 사용하고 있습니다. –

답변

0

대신이 작업을 수행 :

function changeText() { 
    var oldText = $(this).text(); 
    $(this).text(oldText + ' There'); 
} 
$(function(){ 
$('.text').each(function(i, e){ 
    changeText.call(e); 
}); 
}); 
+0

나는 그것이 OP가 필요로하는 것이라고 생각하지 않는다. –

+0

'find' 메소드는 페이지가로드 된 후에도 계속 그 요소를 찾고 있습니까? –

+0

보이는 것처럼. 미안하지만 이건 내가 찾고 있는게 아니야. 내 질문을 더 명확하게하는 데 도움이되는 팁이 있습니까? –

관련 문제