0

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 节点后移动它?

谢谢。

4

0 回答 0