2012-06-05 2 views
1

따라서 dojo.addOnLoaddojo.ready 함수는 대화 상자에 적용되지 않습니다.dojo addOnLoad/ready는 대화 상자에서 작동하지 않습니다.

나는 대안을 찾고 있습니다. 문제는 내 대화 상자 HTML이 동적으로 생성되어 각각 기능을 추가하는 dojo.connect 함수를 사용하는 다양한 스크립트 블록을 포함하고 있다는 것입니다. 예를 들어, 내가 가진 : 이것은 정상적인 웹 페이지에 있지만 존중되지 addOnLoaddijit.byId('liquid4001125249')이 정의되지 않은 대화로 잘 작동

<input type='checkbox' name='value(liquid40011252)' value='1' dojoType='dijit.form.CheckBox' id='liquid4001125249' /> 
<script type='text/javascript'>dojo.addOnLoad(function() { 
    dialogConnect4001125249();}); 
    function dialogConnect4001125249() { 
     dojo.connect(dijit.byId('liquid4001125249'), 'onChange', 
     function(){ 
      // my code for toggling checkboxes ets 
     }); 
    } 
    </script> 

. ready 도움이되지 않습니다.

나는

searchDlg = dojox.widget.DialogSimple(); 
searchDlg.set("title", title); 
searchDlg.set("style", "width: " + width + "px; max-height: "+height+"px; overflow:auto;"); 
searchDlg.set("content", content); 
searchDlg.show(); 

과의 대화를 인스턴스화하고 showdialogConnect를 호출 생각하지만 dialogConnectxxxxx 많다 나는 목록이 없습니다.

어쩌면 다른 방법으로 어쩌면 dialogConnect의 목록을 어딘가에 추가하는 것입니다. 아마도 대화 자체에서. 확실하지 않다.

이 복잡한 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

답변

0

귀하의 경우 대화 상자는 searchDlg... 코드가 실행 된 후에 만 ​​존재합니다. dijit.byIdaddOnLoad 루틴에서 찾을 수없는 것이 정상입니다.

나는 실제로 당신이 connectDialog 함수에서 무엇을하고 싶은지 알지 못하지만 Dialog를 서브 클래스 화하고 대화 상자에 연결하기 위해 postCreate 메서드를 사용하여 가독성을 얻게 될 것이라고 생각합니다.

dojo.declare("mynamespace.MyCustomDialog", [dijit.Dialog], { 

    templateString: dojo.cache("mynamespace", "templates/MyCustomDialog.html"), 
    widgetsInTemplate: true, 

    postCreate: function() 
     { 
     // do whatever dojo.connect you need 
     }, 

    }); 
관련 문제