javascript - Cytoscape 在事件发生时从元素中删除样式

标签 javascript cytoscape.js

当我有一个元素时,我会在鼠标悬停时添加一些边框,以指示将要单击哪个项目:

// cy an instance of a cytoscape object
cy.on('tap',function(event){
      var evtTarget = event.target;

      if( evtTarget === cy ){
        console.log('tap on background');
        $("#nodes").hide();
        $("#no_selected").show();
      } else {
        console.log("Display Info")
        displayInfo(evtTarget._private.data.properties);
      }
    }).on('mouseover',function(event){
      var evtTarget = event.target;

      if( evtTarget !== cy ){
        console.log("Mouse Over");
        evtTarget.style('border-width','2px').style('border-color',"#AF0000");
      }
    }).on('mouseout',function(event){
      var evtTarget = event.target;
      if( evtTarget !== cy ){
        console.log("Fired");
        evtTarget.style('border-width',null).style('border-color',null);
      }
    });

所以我想要实现的是当 mouseout 事件发生时从节点移除边框。到目前为止,我无法弄清楚如何做到这一点,并且在上面的代码中没有发生。您知道如何从节点或边中删除 style 属性吗?

最佳答案

在您的情况下,当 mouseout 事件发生时,只需将 border-width 设置为 0px:

// In your case just chain it with other `on methods`
cy.on('mouseout',function(event){
      var evtTarget = event.target;
      if( evtTarget !== cy ){
        console.log("Fired");
        evtTarget.style('border-width','0px);
      }
    });

据我所知,您只需将属性值重置为您在 style 部分为边缘或节点设置的默认值。 有时只需设置一个默认值(例如,对于尺寸 0px 就足以不被显示)可以为最终用户实现预期的效果。

关于javascript - Cytoscape 在事件发生时从元素中删除样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48368679/

相关文章:

javascript - cytoscape js 通过选择器遍历节点

javascript - Cytoscape.js : right click event on nodes

javascript - 如何在更改值时获取数据列表中的 id 值?

javascript - PHP、JS、AJAX 无法向数据库发送值

javascript - 当我调用 JSON 数组时返回未定义?

javascript - Cytoscape.js 标签点击/单击上的节点/边缘标签编辑器

javascript - 为 cytoscape.js mapData 设置变量限制

javascript - 在BFS cytoscape Javascript中获取nodeID

javascript - 正则表达式注释冲突

javascript - 自定义动态创建的 DIV 的外观