Javascript CellView.highlight()中断更改?

Javascript CellView.highlight()中断更改?,javascript,jointjs,Javascript,Jointjs,我的应用程序使用Jointjs 我最近从Jointjs v0.9.7升级到v0.9.10,自从我升级后,单元格高亮显示似乎不起作用。我将所有内容简化为一个测试应用程序,可以看到调用了highlight()函数,但没有设置highlighted类 我把一个简化的测试页面放到和中。如果有帮助,也将在下面复制 有零钱吗?突出显示在v0.9.10中应该如何工作 <html> <head> <link rel="stylesheet" href="https://cd

我的应用程序使用Jointjs

我最近从Jointjs v0.9.7升级到v0.9.10,自从我升级后,单元格高亮显示似乎不起作用。我将所有内容简化为一个测试应用程序,可以看到调用了
highlight()
函数,但没有设置
highlighted

我把一个简化的测试页面放到和中。如果有帮助,也将在下面复制

有零钱吗?突出显示在v0.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>

//最新版本的Chrome中的jointjs存在问题。这就解决了问题
SVGElement.prototype.getTransfermToElement=
SVGElement.prototype.getTransfermToElement | |函数(toElement){
返回到element.getScreenCTM().inverse().multiply(this.getScreenCTM());
};
var=false;
var图=新接头直径图;
var纸张=新接缝直径纸张({
el:$('纸'),
宽度:400,
身高:400,
模型:图形,
网格大小:1,
交互:错误
});
纸上('cell:pointerclick',函数(cellView){
如果(突出显示){
cellView.unhighlight();
}否则{
cellView.highlight();
}
突出显示=!突出显示
});
var元素=new joint.shapes.basic.Rect({
位置:{x:100,y:30},
属性:{text:{text:'my shape'}},
尺寸:{高:92.7051,宽:150}
});
图.addCell(元素);

JointJS v0.9.10中的默认荧光灯已更改。高亮显示图元时-具有模仿图元形状的
关节高亮显示笔划
类名的SVGPatheElement将直接附加到ElementView。这解决了不同浏览器之间的差异,CSS属性
outline
大多不支持SVG元素

可用的
highlighters
位于
关节中。highlighters
命名空间(
stroke
默认值,
opacity
addClass
向后兼容)

为了恢复原始行为,请使用以下命令

// a highlighter definition
var myHighlighter = {
    name: 'addClass',
    options: {
        className: 'highlighted'
    }
}

// add `myHighlighter` to an `el` (`null` for the entire cellView) DOM element.
cellView.highlight(el, myHighlighter);
// remove `myHighlighter` from an `el` DOM element.
cellView.unhighlight(el, myHighlighter);
请注意,新的更改允许使用多个高亮灯高亮显示CellView

很抱歉给您带来不便。Highlighter的实际文档将尽快出现在JointJS存储库中