显示 dojo 简单对话框时出错
Posted
技术标签:
【中文标题】显示 dojo 简单对话框时出错【英文标题】:get error when showing dojo simple dialog 【发布时间】:2014-09-06 14:26:42 【问题描述】:我写了一个点击函数来显示一个简单的道场对话框,但它显示的是
NO_FAST_DRAW = 假
这实际上适用于 Nexus 4、5 和其他设备 - 但不适用于三星 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,但在 UI 中也看不到对话框。
<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");
【讨论】:
以上是关于显示 dojo 简单对话框时出错的主要内容,如果未能解决你的问题,请参考以下文章