내 응용 프로그램에서 Jointjs를 사용합니다.CellView.highlight() 변경 내용이 변경 되었습니까?
최근에 Jointjs v0.9.7에서 v0.9.10으로 업그레이드되었으며 그 셀 강조 표시가 작동하지 않는 것으로 보았습니다. 나는 모든 것을 테스트 애플리케이션으로 단순화 시켰고 highlight()
함수가 호출되었지만 highlighted
클래스가 설정되지 않았다는 것을 알 수있다.
a gist 및 a fiddle에 간단한 테스트 페이지를 넣었습니다. 도움이 될 수 있도록 아래에 재현되어 있습니다.
급격한 변화가 있었습니까? 하이라이트는 v.9.10에서 어떻게 작동할까요?
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.10/joint.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.10/joint.core.css" />
</head>
<body>
<div id="paper" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.10/joint.js"></script>
<script>
//there is a problem with jointjs in the latest version of Chrome. This fixes it
SVGElement.prototype.getTransformToElement =
SVGElement.prototype.getTransformToElement || function (toElement) {
return toElement.getScreenCTM().inverse().multiply(this.getScreenCTM());
};
var highlighted = false;
var graph = new joint.dia.Graph;
var paper = new joint.dia.Paper({
el: $('#paper'),
width: 400,
height: 400,
model: graph,
gridSize: 1,
interactive: false
});
paper.on('cell:pointerclick', function (cellView) {
if (highlighted) {
cellView.unhighlight();
} else {
cellView.highlight();
}
highlighted = !highlighted
});
var element = new joint.shapes.basic.Rect({
position: { x: 100, y: 30 },
attrs: { text: { text: 'my shape' } },
size: { height: 92.7051, width: 150 }
});
graph.addCell(element);
</script>
</body>
</html>