nieco odmienne podejście - rzeczywista porównania kliknij dzieje się później w funkcję czasu, po upływie zadanego przedziału ... do tej pory po prostu zachować kartę na flagach.
z kilkoma prostymi modyfikacjami (licznik kliknięć zamiast flag) może również zostać rozszerzony na dowolną liczbę szybkich kolejnych kliknięć (potrójne kliknięcie, i in.), Ograniczone przez praktyczność.
var clicked = false,
dblClicked = false,
clickTimer;
function onClick(param){
console.log('Node clicked. param - ',param);
};
function onDoubleClick(param){
console.log('Node Double clicked. param - ',param);
};
function clickCheck(param){
if (!clicked){
clicked = true;
clickTimer = setTimeout(function(){
if(dblClicked){
onDoubleClick(param);
}
else if(clicked){
onClick(param);
}
clicked = false;
dblClicked = false;
clearTimeout(clickTimer);
},150);
} else {
dblClicked = true;
}
};
Nie działa nieprawidłowo. Sprawdź to ponownie –
Powinien być naprawiony –
Myślę, że powinniśmy zrobić coś takiego: Poczekaj na funkcję kliknięcia.Jeśli nic się nie stanie przez mniej więcej sekundę po kliknięciu, włącz alert ("pojedyncze kliknięcie"). Lub jeśli istnieje inne zdarzenie kliknięcia w ciągu sekundy po pierwszym kliknięciu, a następnie alert ("kliknięcie dbl"). Co myślisz? –