除了onChange之外,还有其他事件可以注册到dojo/form/Select吗?
我需要执行回调函数,每次用户选择一个选项,即使他选择了相同的选项,因为它是选定的最后一次。onSelect、onClick不起作用。
var spatialSelectionStore = new Memory({
data: [
{ label: "Rectangle", id: "RECT" },
{ label: "Polygon", id: "POLY" },
{ label: "Circle", id: "CIRC" },
{ label: "Freehand", id: "FREE" }
]
});
var os = new ObjectStore({ objectStore: spatialSelectionStore });
spatialQuerySelect = new Select({
id: "selectionType",
style: { width: "100px" },
store: os,
onChange: activateDrawTool
}, "cp_selectByShapeId");
spatialQuerySelect.startup();
2条答案
按热度按时间kqlmhetl1#
我找到了一种方法来做到这一点,虽然这可能不是最好的方法,它似乎工作。
我设置了一个方面来在
Select._setValueAttr
函数执行之后触发函数,每次单击下拉菜单或下拉菜单项时,小部件都会触发这个函数。我添加了一个检查,以确保只有在单击菜单项时才触发函数回调(在菜单关闭之后)。我还不得不删除您手动添加到Select
的onChange
回调,因为这干扰了方面。超文本标记语言
字符串
脚本语言
**一个
方面可以非常强大,但是如果使用太多,并且过于依赖它们,最终可能会得到一堆 * 可怕 * 的意大利面条代码,所以我建议您少用它们,并且只在必要时使用。
如果您不熟悉它们的功能,您可以告诉一个方面触发
before
、after
或around
另一个方法,该方面将“侦听”正在触发的方法,并根据您的函数callback. Further documentation适当地执行操作。k3fezbri2#
这也将对所有选项起作用。