【问题标题】:Vaadin anchor - catch deafult click eventVaadin 锚点 - 捕获默认点击事件
【发布时间】:2021-10-02 03:24:25
【问题描述】:

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

我知道我可以做到:

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

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

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

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

【问题讨论】:

    标签: java vaadin anchor downloadfile vaadin14


    【解决方案1】:

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


    回答您的问题:

    1. 你做的那样,addEventListener("click", e ->
    2. download.getElement().callFunction("click") (the same as clickInClient)
    3. 我认为这对你来说并不重要。您只需要对事件做出反应,如果您需要一些数据,您可以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");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多