2009-08-28 4 views
0

나는 누군가가이 오류를 디버깅하기 위해 올바른 방향으로 상대 jQuery/jqModal 초보자를 가리킬 수 있기를 바랍니다. div에 html 조각을로드하고 jqModal을 사용하여 해당 div를 모달 대화 상자로 표시합니다. 문제는 div가 표시되지만 내 업데이트 된 html이 표시되지 않는다는 것입니다. 나는 JQuery와 통화에서 응답 내 jqModal 대화 상자를 표시하고있어jqModal/JQuery 문제, div가 새 콘텐츠로 업데이트되지 않습니까?

는, 함수 foo는 온 클릭 이벤트에서 호출 :

function foo(url) 
{ 
    $.ajax({ 
     type: "GET", 
     url: url, 
     success: function(msg) 
     { 
      $('#ajaxmodal').html(msg); 
      $('#ajaxmodal').jqmShow(); 
     } 
    }); 
} 

ajaxmodal 간단한 DIV이다.

처음에는 문제가 HTML 스 니펫 (msg)에 있어야한다고 생각했지만 콜백으로 전달하고 있지만 생각하지는 않습니다. 오류가 발생했습니다 (아래 참조). ('#ajaxmodal') .html (msg) 줄을 입력하거나 HTML 코드를 전달하십시오. 내가 jqModal 제대로 구성된 생각, 우리의 ajaxmodal div 작업을 올바르게 사용하여 다른 호출, 모달 표시 할 수 있어요, 서버 응답을 기반으로 내용을 업데이트 할 수 있어요.

방화 광에서 디버깅하려고하면 .jqmShow() 호출 다음에 오는 오류. 페이지가 아직로드되지 않았을 때 나는 다른 곳에서 때때로 오류를 보았고 jqModal 선택기를 $ (document) .ready()에 래핑 했으므로 그 부분에 대해서는 혼란 스럽다 고 고백합니다. 그래서이 호출이 방아쇠를 당기는 더 큰 문제가있을 수 있습니까?

jquery.jqModal.js 파일에서

라인 64 : JS ERR $이고 ('입력 : 보이는'HW) [0]에 정의되지 라인 :

f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}} 

I는 단계별 이 파이어 폭스, hw [0] ok, 우리의 '#ajaxmodal'div를 참조하십시오.

미리 추적 해 주셔서 감사드립니다.

답변

0

내가 jqModal에 익숙하지 해요,하지만 당신은

append() 

보다는 내가 그 도움이 될 것입니다 있는지 확실하지 않습니다

html() 

시도 할 수도 있지만, 그것은 샷

가치
+0

안녕 크리스, 고마워요. 저는 실제로 이미 시도했습니다. 아무 소용이 없습니다. – echoesofspring

0

다른 사람에게 도움이 될 경우를 대비하여 결과를 게시하면서 문제를 해결했습니다.

이 문제는 .html() 호출을 할 때 ajaxmodal이 jqModal 요소로서 initializel이 아닌 것과 관련이 있다고 생각합니다. .jqmShow를 호출하면 div가 기본 텍스트로 초기화됩니다.

$('#ajaxmodal').jqmShow(); 
$('#ajaxmodal').html(msg); 
+0

매우 흥미롭고, 그 생명주기 이슈를 좋아해야합니다! –

0

이 질문은 이전에 조금 : 나는 전화를 반대했다

$('#ajaxmodal').jqm({ajax: '@href', trigger: 'a[rel*=modal]', ajaxText: 'Loading...'}); 

하지만 내 문제를 해결하기 위해 : 나는 문서 준비 기능이 퍼팅 생각했던 것은 대화를 초기화하기에 충분했다 그러나 이것은 비슷한 상황에서 Google에서 찾을 수있는 유일한 결과 중 하나였습니다. 그래서 나는 내 경험을 공유 할 것이라고 생각했습니다.

jqModal에서 문제가되는 라인은 발견 된 첫 번째 입력 요소에 초점을 맞추고 팝업 폼 내에 포커스가없는 경우 예외가 발생합니다. 이것이 예외 블록에있는 이유입니다. 방화범을 끄면 아무 일도 일어나지 않습니다.

그러나 나 같은 사람이라면 짜증나는 부분에 약간의 오류가 있다는 것을 발견하면 해결 방법은 jqmShow를 실행중인 요소에 더미 입력 요소를 추가하는 것입니다.

f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}}, 

에 : 당신이 초점을 맞출 필요가 아무런 입력이 없을 경우

2

, 당신은에서 jqModal.js에서 변경할 수 있습니다

f=function(h){try{}catch(_){}}, 

어쨌든 무슨 짓을했는지 그)

관련 문제