以编程方式将焦点放在ng-grid的第一行

时间:2013-07-06 03:20:06

标签: javascript angularjs angular-ui ng-grid

在我的项目中,我需要在网格加载后立即关注第一行ng-grid,当我按下向下键时它应该移动到下一行。我添加了以下事件:

$scope.$on('ngGridEventData', function (e,s) {
    $scope.gridOptions.selectRow(0, true);
});

但是这个事件只选择第一行,它不会把焦点放在第一行。需要单击该行以获得焦点。为了获得焦点,我们需要编写什么附加声明?

3 个答案:

答案 0 :(得分:5)

我在ng-grid的github repo上报告了它,并得到了解决方案。您可以在此处查看对话:https://github.com/angular-ui/ng-grid/issues/539

我们需要添加以下语句以将焦点集中到所选元素:

$(".ngViewport").focus();

答案 1 :(得分:2)

我能够专注于一个特定的细胞:

$($($(".ngCellText.col1.colt1")[0]).parent()).parent().focus();

.col1.colt1指的是第2列(.col0.colt0 - >第1列)

在这种情况下,我选择第一行,第二行将使用:

选择
$($($(".ngCellText.col1.colt1")[1]).parent()).parent().focus();

有点hacky,但它确实有效。

答案 2 :(得分:1)

JQuery答案略有不同:

$('div[ng-row]').eq(2).find('.ageCell').focus()

首先找到您想要的行,在这种情况下找到第三行,然后使用列名称找到列,' age'在这种情况下。如果列更改或重新排序,它会更有弹性。