如何在给定row和col索引的情况下获取Dojo Grid单元的实际DOM节点?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在给定row和col索引的情况下获取Dojo Grid单元的实际DOM节点?相关的知识,希望对你有一定的参考价值。
我正在使用Dojo EnhancedGrid,这个问题只发生在同一行上编辑另一个单元格并且我点击一个新单元格时:
在这种情况下的onRowClick(e)和onCellClick(e)事件中,为该单元格传入的DOM节点似乎不是网格中单元格的“真实”DOM节点 - 它似乎是某种类型克隆。我知道这是因为:
- e.cellNode.getBoundingClientRect()返回全0(不正确)。
- 通过dojo.query(...)通过反复试验手动获取DOM节点,这给了我一个node.getBoundingRect()调用返回正确的屏幕矩形的节点。
所以,我需要获得“正确的”DOM节点,这样我就可以在它上面放置一个工具提示对话框,而不会因为getBoundingClientRect()结果不正确而放在屏幕的左上角。这并不容易,因为单元DOM元素的列索引具有idx = XXX属性,但单元格和行DOM元素似乎都没有rowIndex。所以,我无法找到一种方法来验证我从Dojo.query()得到的特定单元DOM节点是我想要的rowIndex / colIndex的实际单元格。
有没有人有解决方法?基本上如何在grid.onCellClick()中获取真正的DOM节点在这种情况下给出一个rowIndex和colIndex?同样,由于网格中的错误,e.cellNode在这种情况下不起作用。
答案
这就是我正在使用的,如果您确定何时调用此事件,您的domNodes
会更新:
var rowNode = dojo.query(e.target).closest(".dojoxGridRow")[0];
以上是关于如何在给定row和col索引的情况下获取Dojo Grid单元的实际DOM节点?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有迭代的情况下获取给定LinkedHashSet元素的索引?