如何将节点分组为单独的cytoscape.js中的单击事件

时间:2016-01-14 03:36:38

标签: javascript css css-selectors cytoscape.js

我想'标记' 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>

1 个答案:

答案 0 :(得分:1)

您错放了元素数据并将其放入样式表中。请参阅JSON规范:http://js.cytoscape.org/#notation/elements-json