2017-03-23 24 views
0

我创建了一个条形图,d3.js在某些情况下有数百个条目,所以为了保持可读性,我创建了“前10个”和“下个10“按钮。我可以通过创建变量c来禁用“上一个10”按钮来加载不存在的数据,当您单击下一个或上一个按钮时,它会将+1-1添加到该变量中,并且当它启用0时,它将被禁用。但是,“下一个10”按钮是不同的,因为每组数据具有不同数量的行(条)。有什么办法可以禁用按钮,当它到达csv文件的末尾?当没有更多的数据可用时禁用“下一步”按钮

下面是我试过的,但它似乎并没有按照我想要的方式工作。

HTML

<div class="buttons"> 
    <button type="button" id="bt1" class="bt1">Previous 10</button> 
    <button type="button" id="bt2" class="bt2">Next 10</button> 
</div> 

JS

  d3.select("#bt2").on("click",() =>{ 
       a += 10; 
       b += 10; 
       c += 1; 
       update(a,b,c); 
       }); 

      d3.select("#bt1").on("click",() => { 
       a -= 10; 
       b -= 10; 
       c -= 1; 
       update(a,b,c); 
       }); 

var counts = {}; 
    data.forEach(function(r) { 
    if (!counts[r.Charge]) { 
    counts[r.Charge] = 0; } 
    counts[r.Charge]++; 
}); 

if (c === 1) { d3.select("#bt1").attr('disabled', 'disabled'); } 
else { document.getElementById("bt1").removeAttribute('disabled'); } 

if (counts === "0") { d3.select("#bt2").attr('disabled', 'disabled'); } 
else { document.getElementById("bt2").removeAttribute('disabled'); } 

回答

0

不整的代码,我不能肯定(的jsfiddle将是非常有用的,如果你可以创建一个),但在最后if语句你= ==比较对象计数和“0”。我相信这是真实的,因为计数是一个对象。您确定您的意思并不是:counts[some_value] === 0(或者,如果您想检查对象计数是否为空 - Object.keys(counts).length === 0

相关问题