gpt4 book ai didi

dojo - dojoAttachpoint 和 id 的区别

转载 作者:行者123 更新时间:2023-12-04 23:02:49 24 4
gpt4 key购买 nike

<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 实例,因此您的模板无法通过 ID 识别节点/dijit,因为您将拥有多个具有相同 ID 的节点/dijit
  • 这是一种优雅的声明方式,因此您的代码不会充满 dijit.byId/dojo.byId .
  • 关于dojo - dojoAttachpoint 和 id 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11056858/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com