【问题标题】:Is up down navigation between table cells possible using javascript?是否可以使用 javascript 在表格单元格之间进行上下导航?
【发布时间】:2019-01-21 08:34:05
【问题描述】:
<div class="flex-row" *ngFor="let item of model.balanceSheet.intermediateAssets; let i = index;">
      <div class="flex-cell w-2 border border-no-bottom border-no-top border-no-left"> {{item.description | stringShorten:48}} </div>
      <div class="flex-cell border border-no-left calculated" *ngFor="let value of item.wacValues"> {{value.value | wacNumber}} </div>
      <div class="flex-cell border border-no-left" style="padding:1px 2px 1px 1px;">
        <input type="number" [disabled]="syncing" style="border:none;" [(ngModel)]="item.eliminationAdjustment" [ngModelOptions]="{standalone: true}" name="eliminationadjustment + i" (change)="syncIntermediateAssets()" />
      </div>
      <div class="flex-cell border border-no-left calculated"> {{item.consolidatedStatement | wacNumber:true}} </div>
    </div>

我试图在单击键盘上的向上向下箭头时在 angular6 中执行单元格导航。但问题是表格是使用 flex 类设计的,而不是使用 tr 和 td。是否可以使用执行单元格导航即使每列都没有要识别的 id,也可以使用 javascript?

【问题讨论】:

  • AngularJS 是这个问题的错误标签 - 它是 Angular 2+ 语法。

标签: javascript angular angular6


【解决方案1】:

如果您的代码中有类似 colsInRow 的变量,您可以执行以下操作:

columnElement.addEventListener('mouseup', (event) => {
    let parent = event.target.parentNode; // get parent element
    let currentIndex = Array.prototype.indexOf.call(parent.children, event.target); // get index of current element

    parent.children[currentIndex + colsInRow].focus();
})

如果您不这样做,我建议您添加它,因为它会使这成为可能并且相当容易。

【讨论】:

  • 可能需要从event.target 额外遍历DOM 才能到达div.flex-cell,然后在选择给定单元格后,在里面找到输入。我提交的代码是这个任务的基本思路
  • 您能举个例子吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 2015-06-06
  • 2018-07-30
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多