Javascript D3中的长点击事件

Javascript D3中的长点击事件,javascript,events,d3.js,click,Javascript,Events,D3.js,Click,是否有可能在d3中的元素上实现长时间延长的点击事件? 我想以下代码是不允许的: d3.selectAll("#mybutton").on("longClick",longClickFunction); 编辑。 我需要一个长的点击,以实现像滑块的东西。 假设有一个DOM元素,其html文本为1。点击我的按钮,我想增加一个。长时间点击mybutton,我想再快速增加一次,直到松开鼠标按钮 在d3.js中没有longClick事件,但是您可以玩弄mousedown和mouse up事件来计算两者之间

是否有可能在d3中的元素上实现长时间延长的点击事件? 我想以下代码是不允许的:

d3.selectAll("#mybutton").on("longClick",longClickFunction);
编辑。 我需要一个长的点击,以实现像滑块的东西。
假设有一个DOM元素,其html文本为1。点击我的按钮,我想增加一个。长时间点击mybutton,我想再快速增加一次,直到松开鼠标按钮

在d3.js中没有longClick事件,但是您可以玩弄mousedown和mouse up事件来计算两者之间的时间长度。这实际上允许您测量单击持续时间

下面的代码段有一个在数据中定义的单击长度阈值,因此每个rect元素将有一个不同的阈值,分别在半秒和整秒触发“长单击”事件:

var svg=d3。选择'body'。附加'svg'。属性'width',500.attr'height',200; var数据=[{color:'orange',持续时间:500},{color:'steelblue',持续时间:1000}]; var startTime; var结束时间; svg.selectAll'rect' .数据 进来 .append'rect' .attr'x',函数d,i{return 20+i*40;} .attr'y',50岁 .attr'height',30 .attr'width',30 .attr'fill',函数d{return d.color;} .on'mousedown',函数{startTime=new Date;} .在'mouseup'上,函数为{ endTime=新日期; 如果endTime-startTime>d.duration{ console.loglong单击,+endTime-startTime+毫秒长; } 否则{ console.logregular单击,+endTime-startTime+毫秒长; } };
在d3.js中没有longClick事件,但是您可以玩弄mousedown和mouse up事件来计算两者之间的时间长度。这实际上允许您测量单击持续时间

下面的代码段有一个在数据中定义的单击长度阈值,因此每个rect元素将有一个不同的阈值,分别在半秒和整秒触发“长单击”事件:

var svg=d3。选择'body'。附加'svg'。属性'width',500.attr'height',200; var数据=[{color:'orange',持续时间:500},{color:'steelblue',持续时间:1000}]; var startTime; var结束时间; svg.selectAll'rect' .数据 进来 .append'rect' .attr'x',函数d,i{return 20+i*40;} .attr'y',50岁 .attr'height',30 .attr'width',30 .attr'fill',函数d{return d.color;} .on'mousedown',函数{startTime=new Date;} .在'mouseup'上,函数为{ endTime=新日期; 如果endTime-startTime>d.duration{ console.loglong单击,+endTime-startTime+毫秒长; } 否则{ console.logregular单击,+endTime-startTime+毫秒长; } };
根据您的代码,只有释放鼠标按钮时才能识别长时间的单击。我更新了我的问题以使其更清晰。我更新了一个应该更适用的附加片段。根据您的代码,只有在释放鼠标按钮时才能识别长时间单击。我更新了我的问题,使之更清晰。我已经更新了一个应该更适用的附加片段。