2014-09-06 4 views
0

Я написал на функции мыши, чтобы показать простой диалог додзё, но вместо этого он показываетполучить ошибку при показе додзё простого диалогового

NO_FAST_DRAW = ложь

Это на самом деле работает в Nexus 4 , 5 и другие устройства, но не в Samsung Galaxy S2.

on(dojo.byId("send_email"), "click", function() 
      { 
        console.log("emailClicked1"); 
        dijit.registry.byId("emailDialog").show(); 
        dojo.byId("emailsText").value=""; 
        dojo.byId("dialogFlag").value="emailDialog"; 
        console.log("emailClicked2"); 
      }); 

Я вижу консольный адрес электронной почты Clicked1 и 2, но не смог увидеть диалоговое окно в пользовательском интерфейсе.

<div id="emailDialog" data-dojo-type="dojox.mobile.SimpleDialog"> 
     <form id="emailDialogForm"> 
      <div id="emailDialogText"> 
       <p class="blue_text" style="text-align: left;">To:</p> 
       <input id="emailsText" type="email" 
        style="line-height: 2em; width: 95%; margin: 3px; border: none; padding: 2px; font-size: 0.65em;" 
        placeholder="Enter email ID (Separate multiple IDs by ,)" /> 
      </div> 
      <div class="button_grid"> 
       <input type="submit" id="submitEmail" value="Send" /> <input 
        type="button" id="cancelEmail" value="Cancel" /> 
      </div> 
     </form> 
    </div> 

ответ

1

В обработчике функции onclick «show()» действие диалога является асинхронным. Таким образом, любой код, связанный с содержимым диалогового окна, должен выполняться только после завершения show(). то есть отложенное действие необходимо обработать.

console.log("emailClicked1"); 
var def = dijit.registry.byId("emailDialog").show(); 
if(def) { 
def.then(function(success) { 
    dojo.byId("emailsText").value=""; 
}); 
} 
dojo.byId("dialogFlag").value="emailDialog"; 
console.log("emailClicked2");