java - Vaadin anchor - 捕获默认点击事件

标签 java vaadin anchor vaadin14

我是 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 并将其样式设置为链接。


回答你的问题:

  1. 按照你的方式,addEventListener("click", e ->
  2. download.getElement().callFunction("click") ( the same as clickInClient )
  3. 我认为这对你来说不重要。您所需要的只是对事件使用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/

相关文章:

javascript - 如何使用 jQuery 在链接标记内添加跨度?

使用继承时的Java动态绑定(bind)

Java Android 引用内部类中的非最终答案

java - Infinispan 远程延迟锁定

Vaadin 10 用于新项目

VAADIN - 设置选项卡内容的完整高度

css - 链接不可点击。 anchor 不工作

html - anchor 标签的随机行为

java - 通过二进制数组进行数组选择

java - Vaadin 按钮单击不会立即执行