【问题标题】:jQuery.focus() making an unnecessary scrolljQuery.focus() 进行不必要的滚动
【发布时间】:2012-03-21 08:41:10
【问题描述】:

这是我的问题。

我正在创建一个对话框 (jQuery.dialog),里面有这个网格 (https://github.com/mleibman/SlickGrid)。

加载数据后,我需要将焦点放在网格上,这样用户就可以使用键盘查看数据结果,而无需在网格内单击来选择它。

但函数grid.getCanvasNode().focus() 导致对话框的所有内容向上滚动一点,但没有必要,因为画布已经可见。

我认为问题的根源在于这个画布是一个非常大的 div,其中包含我的结果集的所有行 (2000px),但只有一部分显示在屏幕上。

有什么办法可以防止这种情况发生吗?

非常感谢!

【问题讨论】:

  • 也许有办法防止这种情况发生。也许在我们看到你的代码之后。
  • 我发现的唯一方法是更改​​此画布节点的高度,设置焦点,然后更改先前值的高度...不是很优雅...

标签: jquery focus scroll slickgrid


【解决方案1】:

尝试使用goToCell()

grid.gotoCell(row, cell, forceEdit)

接受一个行整数和一个单元格整数,将视图滚动到行是其行索引的行,而单元格是其单元格索引。可选择接受 forceEdit 布尔值,如果为 true,将尝试为指定单元格中的字段启动编辑对话。

例如:

grid.gotoCell(0, 0, false) // Will focus on first cell of first row

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2013-01-13
    • 2020-04-08
    • 1970-01-01
    相关资源
    最近更新 更多