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

Cytoscape remove style from element when an event occurs

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

// 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 事件发生时,只需在 0px 中设置 border-width

// 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 就足以不显示)可以为最终用户实现预期的效果。