我是 Vaadin 框架的新手,我想知道是否有办法捕获 anchor 的默认点击事件? (Vaadin14,仅限 Java - v11)
我知道我可以做到:
Anchor download = new Anchor()
download.getElement().addEventListener("click", event -> doStuff())
但它似乎不是默认的内置点击监听器,因为我能够使用 StreamResource 添加 anchor 。 然后,单击 anchor 开始文件下载 - 无需添加任何额外的监听器。
我相信回答这些问题中的任何一个都会解决我的问题:
- 有没有办法捕捉这个 anchor 点击事件?
- 有没有一种方法可以在代码中像 Button click() 方法一样以编程方式触发它?
- 如果 @DomEvent 是 @DomEvent,那么这是什么类型的 @DomEvent?
最佳答案
您实际上是将 anchor 用作链接还是按钮?如果是后者,您可以只使用 Button 并将其样式设置为链接。
回答你的问题:
- 按照你的方式,
addEventListener("click", e ->
download.getElement().callFunction("click")
( the same asclickInClient
)- 我认为这对你来说不重要。您所需要的只是对事件使用react,如果您需要一些数据,您可以 use
addEventData()
您也可以尝试子类化 Anchor
实现 ClickNotifier
mixin interface这将为您提供 addClickListener()
方法,您也可以手动触发此 ClickEvent
,如 button's click()
中所做的那样
public class ClickableAnchor extends Anchor implements ClickNotifier {
public void click() {
fireEvent(new ClickEvent<>(this, false, 0, 0, 0, 0, 0, 0, false, false,
false, false));
}
public void clickInClient() {
getElement().callJsFunction("click");
}
}
关于java - Vaadin anchor - 捕获默认点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68525619/