具有自定义内容的 Vaadin 选项卡

Posted

技术标签:

【中文标题】具有自定义内容的 Vaadin 选项卡【英文标题】:Vaadin tabs with custom content 【发布时间】:2019-10-09 00:07:37 【问题描述】:

我有一个带有自定义内容的 Vaadin 选项卡组件。在某些选项卡中,按钮是由简单文本组成的。当我使用键盘导航选项卡组件时,我可以使用箭头键导航选项卡。

当我想激活标签内的按钮时,我需要再次按tab键来设置tabindex从标签到按钮。

如何在不按两次 Tab 键的情况下使用键盘导航激活按钮?

在 vaadin 选项卡演示中,有一个 example of a tab with custom content。选项卡中没有按钮,而是有一个复选框,但问题是一样的。

【问题讨论】:

您引用了一个 Java 示例,但您的标签建议使用 javascript。这不是偶然的,你真的想要 JS,对吧? 是的,带有自定义内容的选项卡的示例仅在Java示例中。您可以通过单击左侧导航中的 html 按钮切换到 HTML(Web 组件)示例。 我的第一个想法是,如果选项卡有一个子按钮,则将活动选项卡的 tabindex 设置为 -1。但我不知道这是否可行:-( 【参考方案1】:

我已经解决了这个问题。现在我可以用键盘激活选项卡内的按钮了。

我在标准vaadin-tab web component中找到了我的问题的答案

_onKeyup 函数中,它们对选项卡内的锚元素执行完全相同的操作。

在我的 Web 组件中,我添加了 _onKeyup 函数并修改了选择器以使用 vaadin 按钮而不是锚元素:

_onKeyup(event) 
          const willClick = this.hasAttribute('active');

          super._onKeyup(event);

          if (willClick) 
            const slottedButton = this.querySelector('vaadin-button');
            if (slottedButton) 
              slottedButton.click();
            
          
        

【讨论】:

以上是关于具有自定义内容的 Vaadin 选项卡的主要内容,如果未能解决你的问题,请参考以下文章

Angular Js ui.bootstrap 选项卡自定义

Chrome 自定义选项卡自定义(如 setToolbarColor、开始和退出动画)不起作用

基于jQuery实现的Tabs选项卡自定义插件

Vaadin 14 单选按钮组将自定义字符串显示为选项

使用带有选项卡布局的自定义视图时无法从选项卡中删除填充

Xamarin表单选项卡页面具有重叠的自定义视图