如何在 cytoscape.js 中为单独的点击事件对节点进行分组

How can I group nodes for seperate on click events in cytoscape.js

本文关键字:事件 节点 cytoscape js 单独      更新时间:2023-09-26

我想在 cytoscape 中'标记'节点.js这样我就可以为不同的节点组使用不同的点击处理程序。我知道我可以使用他们的 ID 或姓名作为选择器,但我想知道我是否可以使用自定义标签来执行此操作?

这是我正在尝试的..

    <style>
        body {
            font-family: helvetica;
            font-size: 14px;
        }
        #cy {
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            top: 0;
            z-index: 999;
        }
        h1 {
            opacity: 0.5;
            font-size: 1em;
        }
    </style>
    <script>
        $(function(){
            var cy = window.cy = cytoscape({
                container: document.getElementById('cy'),
                                    textureOnViewport: true,
                                    pixelRatio: 1,
                ready: function(){
                },
                style: [
                    {
                        selector: 'node',
                        css: {
                            'content': 'data(name)',
                            'shape':'data(shape)',
                            'width': 'data(width)',
                            'height': 'data(height)',
                            'border-color': 'data(bordercolor)',
                            'border-width': 'data(borderwidth)',
                            'color': '#fff',
                            'type': 'cat'
                    }
                    },
                    {
                        selector: 'edge',
                        css: {
                            'target-arrow-shape': 'triangle',
                            'content': 'data(label)'
                        }
                    },
                ],

            });


        });
                    $.getJSON('<%= url_for(‘getdata’) %>',
                        function (data) {
                              cy = $('#cy').cytoscape("get");
                              cy.load(data);
                              cy.layout({name: 'cose',           
                                        });
                              cy.$('node[type = “cat”]’).on('click',function(e){
                             //do something  
                                                                  });
                        });

    </script>
</head>
<body>
    <h1>Demo</h1>
    <div id="cy"></div>
</body>

你放错了元素数据,把它放在样式表中。 请参阅 JSON 规范:http://js.cytoscape.org/#notation/elements-json