<div dojoType="dojo.Dialog" id="alarmCatDialog" bgColor="#FFFFFF" bgOpacity="0.4" toggle="standard">
<div class='dijitInline'>
<input type='input' class='dateWidgetInput' dojoAttachPoint='numberOfDateNode' selected="true">
</div>
如何显示这个对话框我试过
dijit.byId('alarmCatDialog').show();
上面的代码是一个模板,我叫
dijit.byId('alarmCatDialog').show()
来自 .js 文件。dojo.attr(this.numberOfDateNode)
这段代码有效,我得到了数据。但是如果我将 dojoattachpoint 更改为 id,那么我尝试 dijit.byId('numberOfDateNode')
不管用;
最佳答案
您的 numberOfDateNode 是一个普通的 DOM 节点,而不是一个小部件/dijit,即扩展 dijit/_Widget
的 javascript 对象,这就是您无法通过 dijit.byId("numberOfDateNode")
获得对它的引用的原因.使用 dojo.byId("numberOfDateNode")
相反,你已经准备好了。dojoAttachPoint
或其 HTML5 有效版本 data-dojo-attach-point
在 dijit 模板中使用,将 DOM 节点或子 dijit 的引用附加到 dijit javascript 对象,这就是原因 dijit.byId('alarmCatDialog').numberOfDateNode
引用了您的 <input type='input' class='dateWidgetInput' .../>
.
使用的主要原因 data-dojo-attach-point
就是它:
dijit.byId/dojo.byId
. 关于dojo - dojoAttachpoint 和 id 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11056858/