<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();
上面的代码是一个模板,我从 .js 文件中调用了
dijit.byId('alarmCatDialog').show()
。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/