这是我的问题。
我正在创建一个对话框 (jQuery.dialog),里面有这个网格 (https://github.com/mleibman/SlickGrid)。
加载数据后,我需要将焦点放在网格上,以便用户可以使用键盘查看数据结果,而无需在网格内部单击以选择它。
但函数 grid.getCanvasNode().focus()
导致对话框的所有内容向上滚动一点,但没有必要,因为 Canvas 已经可见。
我认为问题的根源是这个 Canvas 是一个非常大的 div,它包含我的结果集 (2000px) 的所有行,但只有一部分显示在屏幕上。
有什么办法可以避免这种情况吗?
非常感谢!
最佳答案
尝试使用 goToCell()
grid.gotoCell(行, 单元格, forceEdit)
接受一个行整数和一个单元格整数,将 View 滚动到行,其中 row 是它的行索引,cell 是它的单元格索引。可选择接受 forceEdit bool 值,如果为真,将尝试为指定单元格中的字段启动编辑对话框。
例如:
grid.gotoCell(0, 0, false) // Will focus on first cell of first row
关于jQuery.focus() 进行不必要的滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540169/