SO上的第一篇文章,所以请让我知道是否有任何可以改进或不合时宜的地方。
我在菜单中有一个 FilteringSelect:
<div id="menu">
<input data-dojo-type="dijit/form/FilteringSelect"
value="y"
data-dojo-id="timeSelect"
data-dojo-props="store:timeSelectStore, searchAttr:'name', required:false, placeHolder: 'Select a time'"
name="time"
id="timeSelector"
/>
</div>
如果点击了不是其子项的任何内容(即,如果在其外部注册了点击),则菜单将关闭:
// event listener added when menu is opened
on(document, "click", function (evt) {
if (!dom.isDescendant(evt.target, dom.byId('menu'))) {
closeMenu();
}
});
这一切都很好,除了由 FilteringSelect 创建的下拉小部件。它被附加到<body>
,而不是在 FilteringSelect 之后插入,因此当单击下拉菜单时,菜单关闭,因为它不是<div id="menu">
. 你可以在这个小提琴中看到这个的现场版本。
基本上,我希望在 FilteringSelect 之后插入下拉小部件,而不是在页面末尾。现在我假设 Dojo 正在对下拉小部件进行编程实例化,那么我可以为此指定 srcNodeRef 吗?如果是这样,怎么做?如果没有,是否有更简单的方法在构建小部件的 DOM 节点后移动它?
谢谢。