angular - ngx-datatable - 选择未注册的事件
问题描述
我正在尝试使我的 Angular/Typescript 网站符合 ADA 标准,包括允许通过键盘选择项目。可悲的是,我能想到的只是鼠标点击。
我尝试了各种事件组合,但我一定遗漏了一些东西。
<ngx-datatable-column[width]="50" [resizeable]="false" [sortable]="true" [draggable]="false" [canAutoResize="false">
<ng-templatelet-row="row"ngx-datatable-cell-template>
<strong></strong>
<div[class.datatable-icon-right]="!row.$$expanded"
[class.datatable-icon-down]="row.$$expanded"
title="Expand/Collapse Row"
(click)="toggleExpandRow(row)">
</div>
</ng-template>
</ngx-datatable-column>
有没有人知道如何让箭头上的点击事件来适应输入按键或类似的东西?
解决方案
我不熟悉 Angular,所以我无法提供确切的语法,但我知道点击事件是作为按键“输入”在锚点和按钮元素上传递的,而不是在 div 上。尝试提供等效的按键处理程序,如果事件具有 enter 键代码,则运行 toggleExpandRow(row)。您需要添加一个 tabindex="0" 属性以允许仅使用键盘的用户将焦点放在元素上,并还提供一个 role="button" 属性来描述这不是非活动 div。
它应该看起来像这样:
div[class.datatable-icon-right]="!row.$$expanded"
[class.datatable-icon-down]="row.$$expanded"
title="Expand/Collapse Row"
tabindex="0"
role="button"
(keypress)="handleKeypress($event, toggleExpandRow)"
(click)="toggleExpandRow(row)">
</div>
让我知道这是否适合你!
推荐阅读
- python - 了解递归函数 - 快速选择 - 在线性时间内查找中位数
- docker - 在 android 模拟器中运行 apk
- python - 如何使用for循环返回列表的最后一个元素
- kubernetes - 如何在 Kubernetes 中挂载“/”
- python - 覆盖包含隐式关键字参数的方法,其中一个使用显式
- php - 如何在wordpress帖子中将所有外部链接的缩略图居中?
- android - 添加新联系人后如何更新 RecyclerView(包含联系人列表)?
- excel - 为什么我的代码没有保存正确的工作表?
- javascript - Webpack 服务器捆绑排除 CSS
- python - 版本创建失败:用户提供的包 test_code.tar.gz 安装失败