javascript - d3.js 连续单击时删除两个具有匹配属性的元素

标签 javascript jquery d3.js

我有两个具有相同 href 属性的元素。单击它们,添加一个类。 另外,如果第一个点击的元素的 href 等于第二个点击的元素的 href,它们将被过滤掉。

  removeBubble = function(d) {

    var currentId;
    currentId = idValue(d);

   d3.select(this).classed("clicked",true);    // on click add class
   if (d3.selectAll(".clicked").length === 2 && // 2 elements class clicked
          d3.select(this).prev.attr("href") ===  // href of 1st elem
          d3.select(this).next.attr("href"))     // href of 2nd elem
          {
         // filter here
          }
  };

任务: 1.检查点击的元素是否有匹配的href

如何在 d3.js 中实现 .prev() 和 .next() - jQuery 评估器 - 效果?

到目前为止:未捕获类型错误:a.target.className.indexOf 不是函数

最佳答案

这是带有评论的最终工作解决方案:

removeBubble = function(d) {
  var currentId;
  currentId = idValue(d);

// when this clicked attach class

  var clicked = d3.select(this).classed("clicked",true);

 // ascribe href of elements with class clicked to variable

  var clicktext = d3.selectAll(".class1.clicked").attr("href");
  var clicklabel = d3.selectAll(".class2.clicked").attr("href");

// if no match remove class clicked and update
// else remove elements and update

   if ( clicklabel !== clicktext){
     console.log("it's not a match !");


     d3.selectAll(".clicked").classed("clicked",false);
     update();
     return d3.event.preventDefault();

 } else {  
    console.log("its a match !");


    data = data.filter(function(e) {
    return idValue(e) !== currentId;
    });
 }

 update();
 return d3.event.preventDefault();
};

重点是在连续单击两个具有不同 href 值的元素的情况下删除用于标识元素的类:删除类,更新 = 重新开始。

关于javascript - d3.js 连续单击时删除两个具有匹配属性的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32036083/

相关文章:

javascript - JQuery 在 show() 函数之前加载图像

java - ajax 成功函数正在打印 [object Object] 而不是纯文本。为什么?

d3.js - 如何正确地使文本宽度达到图形栏上方的中心标签?

javascript - 带有外部 html 模板的 jsBlocks

javascript - 在联系表上加载隐藏的 Div

javascript - settimeout 没有被清除

jquery - 从 HTML 内部获取第一个 DIV 的类

d3.js - 什么是绝对最短的 d3 区域示例?

javascript - 无法在 d3.js 中添加轴

javascript - 我对 for 循环中的 javascript let 和 var 感到困惑?