当发生点击事件时,我想确定点击了哪些小部件。请注意,出于性能原因,我特别不希望为每个小部件添加点击处理程序。
获取被点击的元素(它将是本机事件的事件目标)很容易,但是如何找到相应的小部件?
答案 0 :(得分:2)
afaik没有标准功能。但是你可以像在GWT的com.google.gwt.user.client.ui.Tree
类中那样完成它。
基本上它通过首先从根Widget的Element中收集Elements链到单击的Widget元素(参见Tree类中的私有方法collectElementChain
)来工作。通过这个Elements链,可以通过从Root小部件遍历到单击的Widget找到Widget(参见Tree类中的私有方法findItemByChain
)。
这适用于Tree,因为每个Widget / Element的子元素的Widget和Element索引匹配,并且因为它只允许将特定的widget设置为TreeItem的。
答案 1 :(得分:0)
实际上,您可以使用gwtquery或DOM.getEventListener(element)
方法获取与窗口小部件主要元素关联的窗口小部件,该方法返回与元素关联的窗口小部件。
您可以在另一个帖子中查看我的回复,了解一些有效的代码:GWT - How to retrive real clicked widget?