我有一个简单的功能,可以通过提供的过滤器参数隐藏/显示节点,移除部分可以正常工作。但是,我无法对已经删除的节点集合应用相同的过滤器,因此我只能恢复那些过滤器。 (Cytoscape新手,我的Javascript-fu很弱...)

  var hiddenOnes = cy.collection();

  var hideShow = function(selectorExpr, event) {

    if (event.target.checked == true) {
        var restoring = hiddenOnes(selectorExpr);  // problem is here!
        cy.add(restoring);
        } else {
            var nodesToHide = cy.nodes(selectorExpr);
            hiddenOnes = hiddenOnes.union( nodesToHide.remove() );
            }
  }


我了解为什么选择器表达式不能在hiddenOnes集合上使用,我只想知道该怎么做!

最佳答案

hiddenOnes不能像hiddenOnes(selector)那样使用。使用hiddenOnes.filter(selector)

请参阅文档:https://js.cytoscape.org/#eles.filter

Chrome调试器文档对于确定某些类型的问题很有用:https://developers.google.com/web/tools/chrome-devtools/javascript/

关于javascript - 在外部集合上使用选择器/过滤器-可能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57917999/

10-09 15:42