gpt4 book ai didi

javascript - 如何确定哪个小部件被点击?道场

转载 作者:行者123 更新时间:2023-12-02 14:11:48 27 4
gpt4 key购买 nike

有没有办法观察鼠标单击事件并确定单击了哪个小部件?

所以基本上我希望我能做这样的事情(鼠标单击页面上的任意位置)

on("click", function (e) {
//var aWidget = dijit.getEnclosingWidget(e.target);
//var id = aWidget.id
//do something based on the widget id
});

最佳答案

可以,但需要一些额外的步骤。
基本上,逻辑是:- 当你点击一个节点时,你必须在 DOM 中向上查找,直到找到具有 widgetId 属性的节点- 获得后,使用 dijit/registry::byNode 获取该小部件。

如果跳过节点遍历,只有点击小部件的主 domNode 才会找到该小部件。

require(['dojo/on', 'dijit/registry'], function(on, registry){
on(document, 'click', function(event){
var target = event.target,
widget;
while(!target.getAttribute('widgetId') && target.parentNode) {
target = target.parentNode;
}
widget = registry.byNode(target);
console.warn(widget);
});
});

请注意,此方法在页面中加载了 1 个 dojo 实例时才有效。
如果您的页面有多个 dojo 实例,则每个 dojo 实例都必须附加 document click 事件。

关于javascript - 如何确定哪个小部件被点击?道场,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39479124/

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