如何获取maxGraph单元格的id'的内容
How to get the id of an maxGraph cell's content
我创建了一个图形,并通过拖放在上面设置单元格。但是,当发生拖放或单击时,我找不到可供使用的单击单元格的html。
例如,我试图获取mxEvent.CLICK
中被拖动元素的ID。
graph.addListener(mxEvent.CLICK, function(sender, evt){
var cell = evt.properties.cell;
// cell.id is the cell id, not an id of html that's inside of it.
if(cell) {
var outer = cell.value.outerHTML; // I can see the HTML here encoded
}
})
更新:因此,在创建可拖动项目时,我使用value.setAttribute('htmlLabel', label);
将html添加到单元格中。然而,htmlLabel似乎不是evt对象中任何位置的键。
我已经在一个大型项目中使用MxGraph几个月了,虽然它是一个很棒的库,但在某些领域使用起来有点麻烦。
HTML就是其中一个方面。
首先,您需要使用"MxGraph"工具集获取事件的对象,如下所示:
graph.addListener(mxEvent.CLICK, function(sender, event){
var mouseEvent = event.getProperty('event');
var selectedCell = event.getProperty('cell');
});
正如您已经计算出的,您可以通过选定单元格的ID属性从中获取单元格ID,但除此之外,该对象上没有太多其他内容。
要深入了解,您需要深入了解您也得到的鼠标事件。
它只是一个普通的HTML事件,因此具有您期望找到的常规属性。
在您的情况下
mouseEvent.currentTarget.innerHTML
将为您获取单击的元素的HTML(您可能需要在调试器中探索不同的路径,但这在最新版本的chrome中确实适用)
不过,您需要注意的一点是,MxGraph使用SVG渲染其所有输出,而且据我所见,渲染的标记上没有标准的HTML ID属性,事实上,渲染的图形元素上似乎都没有ID。
一周前,当我试图获取MxGraph生成的输出来进行一些图像操作时,我遇到了这个问题,因为我无法可靠地获取单个图像,所以我不得不使用Base64编码的字符串,并使用MxGraph的API来操纵单元格样式表。
我使用xml创建图表:
...
<mxCell id="start" value="Start" style="start" vertex="1" parent="1"><mxGeometry x="0" y="0" width="30" height="30" as="geometry"/></mxCell>
...
所以我得到了这个代码的ID:
graph.addListener(mxEvent.CLICK, function (sender, evt) {
var cell = evt.getProperty("cell");
var id = cell.id;
}
3.9.11版
版本3.9.8我试着使用上面的代码,但发现(graph)有错误,经过更多的搜索和尝试,我发现合适的是(mxGraph.protype),所以这个代码应该是:
mxGraph.prototype.addListener(mxEvent.CLICK, function(sender, event){
var mouseEvent = event.getProperty('event');
var selectedCell = event.getProperty('cell');
});
相关文章:
- 用户输入的动态表,单元格id作为网格引用
- 如何创建一个每行列数未知的html表,对齐列,并为每个单元格/行指定一个id
- 使用内部脚本更改表单元格 css,而不依赖于 id、类或包含
- 如何在右键单击时获取 ASP.NET GridView在jQuery中的单元格ID
- 光滑网格 - 获取选定的单元格值,ID和字段
- Yii2:Jquery 选择表格单元格的 id 不起作用
- 从 rowid 获取表单元格 ID
- 将单个 id 标签添加到表格单元格中,每个循环都有 Rails
- 在 Javascript 中循环访问表单元格 ID
- 在 ExtJS 4 网格中设置单元格 ID
- Javascript:获取单元格的列 ID
- 获取表格单元格的 ID
- 如何获取maxGraph单元格的id'的内容
- 从表单元格ID获取数据
- 通过其 id 为表中的特定单元格添加颜色
- javascript生成的表我需要为每个生成的单元格分配一个单独的id
- 如何在jqgrid中获取列id或当前关注单元格的id
- 删除后,更改单元格内文本框的id不工作
- 为列构建一个表单元格id数组
- 仅使用Javascript使用表行(
) id读取表单元格值( )