Javascript 单击时禁用/启用按钮

Javascript 单击时禁用/启用按钮,javascript,jquery,d3.js,Javascript,Jquery,D3.js,我有一组svg形状,它们有一个类和单独的ID。我在这些形状上实现了一个onclick函数,它反过来运行另一个函数(filter),它过滤掉画布中的数组。我还可以双击以返回过滤器阵列 但是,当我单击其中一个形状时,我希望其他形状被禁用,直到我双击刚才单击的形状为止。我见过很多例子,但似乎不起作用。到目前为止,我的工作如下: function filter (d) { if (d.s =='triangle') {d3.selectAll(".nodes").filter(fu

我有一组svg形状,它们有一个类和单独的ID。我在这些形状上实现了一个onclick函数,它反过来运行另一个函数(filter),它过滤掉画布中的数组。我还可以双击以返回过滤器阵列

但是,当我单击其中一个形状时,我希望其他形状被禁用,直到我双击刚才单击的形状为止。我见过很多例子,但似乎不起作用。到目前为止,我的工作如下:

function filter (d) {


  if (d.s =='triangle')  
     {d3.selectAll(".nodes").filter(function(d) {return d.categ === 'High' || d.categ === 'Low'}).transition().style("opacity", 0).style("display", "none");
        d3.selectAll("#High").on('click',function() { d3.event.stopPropagation(); } ); }

else if (d.s =='cross')  
     {return d3.selectAll(".nodes").filter(function(d) {return d.categ === 'Medium' || d.categ === 'Low'}).transition().style("opacity", 0).style("display", "none");}

else {return d3.selectAll(".nodes").filter(function(d) {return d.categ === 'Medium' || d.categ === 'High'}).transition().style("opacity", 0).style("display", "none");}

   }   



function antifilter (d) {


      d3.selectAll(".nodes").transition().style("opacity", 1).style("display", "block")


 }
我还尝试使用

     .on('click',null)

但是没有运气。任何帮助都会很好!那么,当我双击鼠标时,有没有办法再次开始鼠标单击呢。找不到与StopRopagation相反的选项来重置我的筛选器


我刚刚尝试了一个关于你的问题的场景,看看

HTML


不熟悉d3。该属性是否应“启用”?否使用stop.propagation似乎可以正常工作。但是,有没有一个相反的方法可以让双击一切都恢复正常呢?试着在jsfiddle.net上设置一个演示提琴,它可以帮助你可视化你的问题,并能让你更快地找到解决方案。嗨@jakker这里有一个jsfiddle来展示我想要做的事情。我基本上是想在单击一个按钮时禁用这些按钮。然后,当双击时,它们都处于活动状态。嘿,谢谢你的回复。这是我现在尝试做的一个例子。。。
      document.getElementById("High").onclick = function() { return false; }
<span id="res">0</span>
<a href="javascript:void(0);" id="High">Link</a><br>
<a href="javascript:void(0);" id="Enable">Enable</a><br>
<a href="javascript:void(0);" id="Disable">Disable</a>
function increase(){
    $("#res").text(parseInt($("#res").text()) + 1);
}
$("#High").on("click",increase);
//Enable
$(document).on("click","#Enable",function(){
    $("#High").on("click",increase);
});
//Disable
$(document).on("click","#Disable",function(){
    $("#High").off();
});