微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 cytoscape.js 在节点的水龙头上向 cytoscape 节点动态添加 css 类

如何解决使用 cytoscape.js 在节点的水龙头上向 cytoscape 节点动态添加 css 类

我正在尝试在 cytoscape.js 中的节点上添加类。这是完整代码链接

https://stackblitz.com/edit/angular-kpnys1?file=src%2Fapp%2Fapp.component.ts

ngViewAfterInit 函数

  cy.on("tap","node",function(evt) {
      var node = evt.target;
      console.log("tapped " + node.id());
      cy.nodes(node).classes("foo");
    });

Tap 工作正常,但它不会向节点添加任何类。这可能吗?

解决方法

您必须为此使用正确的方法。目前,您的代码调用 node.classes(),它删除节点的所有先前类(您基本上覆盖了节点的类数组)。

您想要做什么:使用 node.addClass("foo") 并在您的样式表中添加一个条目:

{
    selector: ".foo",css: {
        "background-color": "green"
    }
}

点表示一个类,但您可以进一步指定。如果您只想将 foo 类添加到父节点,请将 .foo 更改为 :parent.foo

但除此之外,您的代码确实有效(有点),单击节点时会出现该类。这是您的 stackblitz 的编辑版本,我添加了提到的更改并为一个父元素提供了“bar”类。如果您单击父节点,该节点会将背景颜色更改为绿色并将其当前类记录到控制台:

stackblitz

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。