2013-02-13 1 views
0

Ajax를 통해 콘텐츠를 대상 컨테이너로 직접로드하고 싶습니다.jQuery 컨테이너에 직접로드,로드 될 때 fadeIn

var theData = $('<div id="tempcontainer">').load('/'+targetProject + ' #containerUID' + targetProject);     
$(theData).prependTo('#targetContainer'); 

이 내 #targetContainer에 데이터를로드하지만, 불필요한 #tempcontainer 나를 떠난다. 내 #targetContainer에 여러 항목을로드하려고하므로 #tempcontainers을 복제 할 수 없습니다. 내가 달성하고자하는 어떤

#tempcontainers을 (를 피하기 완전히 더 나은 것) 복제하지 않고 내 #targetContainer에 숨겨진로드 된 데이터를 삽입하는 것입니다, 측정은, 일부 기능 및 fadeIn 전화 (가능하면 숨겨진 동안) 높이의 내용이로드되었습니다.

미리 감사드립니다.

인사말,

답변

0

load()$.get의 편리한 바로 가기이므로 데이터를 변수에 저장하는 경우 $.get이 더 적합합니다. 그런 다음 내용을 숨기고 앞에 붙이고 페이드 인합니다. 몇 가지 문제를 피하기 위해 순서를 바꾸지 만, 그다지 중요하지 않습니다.

$.get('/'+targetProject , function(data) { 
    $(data).find('#containerUID' + targetProject) 
      .hide() 
      .fadeIn() 
      .prependTo('#targetContainer'); 
}); 
+0

감사합니다. 왜 처음으로'fadeIn'을하고'prepend'를했는지 설명해 주시겠습니까? – knalpiap

+0

fadeIn은 다소 비동기 적이기 때문에 prependTo의 실행을 멈추지 않으며 너무 빠르기 때문에 그 차이를 알 수 없습니다. 이 순서대로 수행하는 이유는 처음에 추가/선행하여 문제가 발생하는 것처럼 보일 때가 있으며, 때때로 이러한 문제를 해결할 수있는 것처럼 보이기 때문입니다. 그 명령은 항상 의도 한대로 작동한다는 것을 알고 있습니다. – adeneo

+0

최고급, 설명해 주셔서 감사합니다! – knalpiap