Vaadin锚点-捕捉默认点击事件

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

我知道我可以这样做:

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

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

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

  • 有没有办法捕捉这个锚点点击事件?
  • 有没有办法像 Button click() 方法那样在代码中以编程方式触发它?
  • 如果它是@DomEvent,那么这是什么类型的@DomEvent?

回答

您实际上是将锚点用作链接还是按钮?如果是后者,您可以只使用 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");
    }
}


以上是Vaadin锚点-捕捉默认点击事件的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>