首页 > 解决方案 > Vaadin 锚点 - 捕获默认点击事件

问题描述

我是 Vaadin 框架的新手,我想知道是否有办法捕获 Anchor 的默认点击事件?(Vaadin14,仅限 Java - v11)

我知道我可以这样做:

Anchor download = new Anchor()
download.getElement().addEventListener("click", event -> doStuff())

但它似乎不是内置的默认点击侦听器,因为我能够添加带有 StreamResource 的锚点。然后,单击 Anchor 开始文件下载 - 无需添加任何其他侦听器。

回答这些问题中的任何一个都可以解决我的问题,我相信:

标签: javavaadinanchorvaadin14

解决方案


您实际上是将锚点用作链接还是按钮?如果是后者,您可以只使用 Button 并将其设置为链接。


回答您的问题:

  1. 你做的方式,addEventListener("click", e ->
  2. download.getElement().callFunction("click")clickInClient
  3. 我不认为这对你很重要。您只需要对事件做出反应,如果您需要一些数据,您可以使用addEventData()

您也可以尝试Anchor实现ClickNotifiermixin 接口的子类,这将为您提供该addClickListener()方法,然后您也可以ClickEvent手动触发它,就像在按钮中所做的那样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");
    }
}

推荐阅读