2011-12-13 8 views
0

가능한 중복 : jquery change div textjQuery를 변경 내용

위의 질문은 중복 가능성이지만, 그것이 작동하지 않는 이유를 모르겠어요. 나는 jQuery에 대해서도 상당히 익숙하다.

아래는이 기능의 일부입니다 (지금 작성한 전부입니다). 앵커 태그에 대해 onclick 이벤트로 트리거되고 있습니다.

참고 : "popupBase.html"나는이 사이트에 있고 재현성 "팝업"창입니다 여기

function changeStatus(user) { var esc = true; $.get('ajax/popupBase.html', user, function(data, stat, d) { $("#AjaxFrame").html(data); }, 'html'); $.get('ajax/changeStatus.html', user, function(data, stat, d) { $("#PopupBody").html(data); }, 'html'); $("#AjaxFrame").fadeIn('fast'); $("#PopupTitle").html("Status Update"); $("#Popup").center(); popupState = 1; return esc; } 

내가 $.get()로 사용하고 템플릿 "popupBase.html가" 난 그냥 비어있는 div에 데이터를 삽입하고

#AjaxFrame<body> 내부 (내 사이트에 컨테이너 밖에 모든 HTML입니다

<div id="Popup"> 
    <form id="Popup1" method="post"> 
     <div id="PopupTitle"></div> 

     <div id="PopupBody"></div> 

     <input class="button" id="Save" name="saveChanges" type="submit" value="OK" /> 
     <input class="button" id="Cancel" name="clearChanges" type="button" value="Cancel" /> 
    </form> 
</div> 
가능한 재사용 HTML, 외부수 있습니다). 내 $.get() 전화에서 #PopupTitle#PopupBody이라는 두 개의 빈 컨테이너가 있습니다.

질문 : #PopupBody에 "changeStatus.html"에서 검색 한 HTML을 삽입이 작동하지 않습니다 #PopupTitle에서 정적 텍스트를 추가, 그러나 잘 작동합니다. this possible duplicate 님의 답변에 .text()을 사용해 보았습니다.

편집 : 미래의 독자를위한 참고, 내가 ID가 사용을 갱신해야 각 사용 후 #AjaxFrame의 내용을 삭제하고 있습니다.

내가 시도한 다른 것들 : Chrome 캐시 (최신 및 휴대용 앱 버전 모두)를 지우고 오타를 반복해서 확인했습니다.

나는 이것에 관해서는 거의 혼란 스럽다.

+0

죄송에 가야하지만, 당신이 원하는 것을 나에게 매우 분명하지 않다, PopupTitle에 있어야합니다. .. 무슨 일 이니? –

+0

아, 죄송합니다. 질문을 이해하지 못하고 단락으로 빠져 나간 것 같습니다. 어쨌든, 내가 가진 문제는'$ ("# PopupTitle") .html ("Status Update")로 내용을 바꾸지 않고'$ ("# AjaxFrame") .html (data);' 와'$ ("PopupBody") .html (data);'문제 없습니다. 나는 정말로 그것을 얻지 않는다. : | – Zack

+0

어디에서 _how_ 그 함수를'changeStatus()'라고 부르시겠습니까? –

답변

2

당신이 경쟁 조건에 부딪치게되면, javascript는 그 $ .get 함수가 완료되기까지 기다리지 않을 것입니다. 당신이 원하는 경우 아약스가 자신의 과정을 실행 한 도착 후에

는 "상태 업데이트"그것은 성공 처리기

function changeStatus(user) 
{ 
    var esc = true; 
    $.get('ajax/popupBase.html', user, function(data, stat, d) { 
     $("#AjaxFrame").html(data); 
    }, 'html'); 

    $.get('ajax/changeStatus.html', user, function(data, stat, d) { 
     $("#PopupBody").html(data); 
     $("#PopupTitle").html("Status Update"); //will over write what is in data 
    }, 'html'); 

    $("#AjaxFrame").fadeIn('fast'); 

    $("#Popup").center(); 
    popupState = 1; 

    return esc; 
} 
+0

아하! Duely는 친절한 사람을 언급했다! – Zack

+0

AjaxFrame을 원할 때 따라 달라집니다. 실제로 페이드 인하려면 #PopUp를 중앙에 배치하려면 해당 항목을 옮길 필요가 있습니다. :) 다행 인 것은 도움이 될 수 있습니다. – Patricia