2010-12-01 3 views
2

jQuery를 사용하여 다음과 같은 조작을하고 있다고 가정 해보십시오.

$("#myid").html('<span id="inserted">inserted portion</span>') 

이 작업을 수행 한 후 페이지 소스를 보면 HTML의 삽입 된 부분 ("삽입 된"ID가있는 범위 태그)을 사용할 수 없습니다 $ ("# inserted")로하는 모든 작업은 실패합니다!

이것은 AJAX 호출로 페이지의 일부를 업데이트하고 (일반적으로 새 파트를 삽입하기 위해 jQuery html() 메서드 사용) 업데이트 된 파트에서 더 많은 작업을 수행하려고 할 때 주요한 문제가됩니다.

아무도 내가 무엇을 놓치고 설명해 주시겠습니까?

+2

가난한 제목. 코드 줄 이외의 다른 이름을 지정해야합니다 ... –

+0

"페이지 원본을 볼 때"- 정확히 어떻게하고 있습니까? 또한 "삽입 된 부분"텍스트가 페이지 자체에 나타나거나 전체 삽입이 실패합니까? – deceze

+0

코드를 분석 할 수 있도록 js 및 html에 대한보다 자세한 예제를 제공하십시오. –

답변

2

라이브 사용 당신이 무엇을 삽입 ID 바인딩되는 이벤트 ....이 미래의 HTML 요소 또는 HTML에 대한 바인딩은 런타임

http://api.jquery.com/live/ 

$('#inserted ').live('click', function() { 
    // Live handler called. 
}); 
+0

이 답장은 내 문제의 직접적인 해결책 인 것처럼 보입니다. (어쨌든 아직 테스트하지 않았습니다.) 고맙습니다. – siva636

2

페이지 소스는 단지 그 때문이다에서 추가 ... 소스 .. 브라우저에로드됩니다. 문서가로드 된 후 jquery Document Ready 함수를 통해 문서를 조작합니다 (모든 이미지 등이로드 된 후 실행됩니다).

수정 된 HTML/CSS/Whatever를 검사하려면 firebug 또는 Chrome/Safari 개발자 도구와 같은 디버깅 도구를 사용하십시오.

$("#inserted) 작업이 실패하는 경우 구체적인 예를 게시하는 것이 좋습니다. 어떤 세부 사항도 게시하지 않으면 우리는 정말로 당신을 도울 수 없습니다.

2

#myid이있는 경우 새 요소는 브라우저의 문서 내부 표현 ("DOM")에 존재합니다. 페이지의 소스가 원본 HTML (및 js)이므로 "소스보기"에 표시해서는 안되지만 그 이후의 모든 작업은 소스에있는 것처럼 정확하게 작동해야합니다.

관련 문제