【问题标题】:get error when showing dojo simple dialog显示 dojo 简单对话框时出错
【发布时间】: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>

【问题讨论】:

    标签: dojo ibm-mobilefirst dojox.mobile


    【解决方案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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      相关资源
      最近更新 更多