2012-11-07 3 views
1

모달 대화 상자의 HTML을 생성 한 후 나중에 대화 상자를 팝업하는 파이썬 백엔드에 ajax 호출을 작성하고 있습니다. 그러나 최근에는 여기에 문제가있었습니다. 내 코드 (지금까지) JS 프론트 엔드에 대한 다음과 같습니다.jQueryUI가 모달 대화 상자를 열 수 없습니다.

var deletegroup = function(group){ 
     $.ajax({ 
       url: "ajax.py/get_orphaned_networks", 
       data: {group: group}, 
       success: function(result){ 
         if (result == 0){ 
           alert("Group does not contain networks, no networks will be deleted."); 
         } else { 
           $("#dgf_modal").html(result); 
           $("#dgf_modal").css('visibility', 'visible'); 
           $("#dgf_modal").dialog({ 
             modal: true, 
             closeOnEscape: false, 
             resizable: false, 
             draggable: false, 
             title: "Deleting Group", 
             width: 500, 
             height: 500, 
             buttons: { 
               "Yes" : function(){ 
                 alert("Well, okay then."); 
                 $("#dgf_modal").dialog("close"); 
               }, 
               "Cancel" : function(){ 
                 $("#dgf_modal").dialog("close"); 
               } 
             }, 
             close: function(){ 
               $("#dgf_modal").html(""); 
               $("#dgf_modal").css('visibility', 'hidden'); 
               $(this).dialog("destroy"); 
             } 
           }); 
           $("#dgf_modal").dialog("open"); 
         } 
       }, 
       error: function(){ 
         setlongmessage("An error has occurred. Contact your system administrator."); 
         $("#dgf_status").html("<img src='images/error.png' alt='An error occured.'/>"); 
         setTimeout(function(){$("#dgf_status").html("");}, 3000); 
       } 
     }); 
} 

내 응용 프로그램의 다른 섹션에서도 비슷한 코드가 있습니다. 그러나,이 하나 나는 다음과 같은 오류를 받고 있어요 :

Error: cannot call methods on dialog prior to initialization; attempted to call method 'open'

throw new Error(msg);

jquery.js (line 477)

편집 : 나는 ("가까운") 사업부에 대화 ("개방") 또는 대화 상자를 호출하면 저도 같은 오류 메시지가 표시됩니다. 동일한 스택 추적, 변경되는 유일한 오류는 'open'대신 'close'메서드를 호출하려고 시도한다는 것입니다.

jQueryUI와 jQuery의 최신 버전을 사용하고 있습니다. 아마이 버전을 업데이트하면이 문제가 해결 될 것이라고 생각합니다. 주사위가 없다. 어쩌면이 함수의 어딘가에서 엉망이 될 수도 있지만, 아약스 호출이 반환해야하는 적절한 HTML을 반환하는지 확실히 알 수 있습니다.

다른 모든 것은 체크 아웃합니다. ID가 dgf_modal 인 div를 가지고 있는데 제대로 작동합니다. 지금 내게 무슨 짓을하고 있는지 정확히 알지 못한다.

+0

NITPICK :'$ ("# dgf_modal")을 계속해서 반복하는 것은 나쁜 습관입니다. 천천히. 그것을 변수에 저장하고 참조하십시오. – epascarello

+0

@epascarello : 일단 코드가 실제로 작동하면 걱정할 것입니다. 그러나 잘 잡습니다. 고맙습니다. – Skyline969

답변

1

음, 알아 냈습니다. 결국 내 AJAX 호출이었고 ID가 "dgf_modal"인 두 div를 반환했습니다. 실수로 내 for 루프에 던져 넣을 때 자동으로 테이블 셀을 생성 할 때 실제로 테이블을 닫을 때와 반대쪽에 있습니다.

간단히 말해, 나는 바보입니다.

1

열기를 호출 할 이유가 없으므로 대화 상자를 만들 때 autoOpen 옵션을 사용하십시오.

+0

그 통찰력에 감사드립니다. 그러나 모든 문제를 해결하지는 못합니다. 게시물을 더 많은 정보로 업데이트하겠습니다. – Skyline969

관련 문제