D3:如何设置“点击”事件和“dbclick”事件同时? [英] D3: How do I set "click" event and "dbclick" event at the same time?

查看:600
本文介绍了D3:如何设置“点击”事件和“dbclick”事件同时?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经将点击事件切换到一个节点,我也要将一个dbclick事件切换到它。



那么如何同时设置这两个事件呢?



这样可以工作:



  var clickedOnce = false; 
var timer;

$(#test)。bind(click,function(){
if(clickedOnce){
run_on_double_click();
}
timer = setTimeout(function(){
run_on_simple_click(parameter);
},150);
clickedOnce = true;
}
}

function run_on_simple_click(parameter){
alert(parameter);
alert(simpleclick);
clickedOnce = false;
}

function run_on_double_click(){
clickedOnce = false;
clearTimeout(timer);
alert(doubleclick);
}

这是一个工作 JSFiddle



有关您应该为计时器使用什么延迟的更多信息,请看这里:如何在元素上同时使用onclick和ondblclick?


I've toggled click event to a node and I want to toggle a dbclick event to it as well. However it only triggers the click event when I dbclick on it.

So How do I set both events at the same time?

解决方案

You have to do your "own" doubleclick detection

Something like that could work:

var clickedOnce = false;
var timer;

$("#test").bind("click", function(){
    if (clickedOnce) {
        run_on_double_click();
    } else {
        timer = setTimeout(function() {
           run_on_simple_click(parameter);
        }, 150);
        clickedOnce = true;
    }
});

function run_on_simple_click(parameter) {
    alert(parameter);
    alert("simpleclick");
    clickedOnce = false;
}

function run_on_double_click() {
    clickedOnce = false;
    clearTimeout(timer);
    alert("doubleclick");
}

Here is a working JSFiddle

For more information about what delay you should use for your timer, have a look here : How to use both onclick and ondblclick on an element?

这篇关于D3:如何设置“点击”事件和“dbclick”事件同时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆