Double Click jak w OS’ie

marzec 19, 2007 – 7:41 po południu
Zobacz demo
Pobierz gotowy kod

Spróbuję teraz zaprezentować mały skrypt który zajmie się poprawnym interpretowaniem tych zdarzeń. Będzie on ignorował Click jeśli nastąpi zdarzenie dblClick.

var delayTime=301; // czas czekania na następne kliknięcie
var dblClickTime=0; // czas podwójnego kliknięcia
var clickTime=0; // przechowuje czas kliknięcia
var timeOut=null;
function clickMe(cOneFunc, cDoubleFunc, eve)
{
  var d = new Date();
  var now = d.getTime();	
  if(eve.type == "click")
  {
    if (clickTime - dblClickTime <= 0) { 
      timeOut = setTimeout('clickTime=0,eval('+cOneFunc+')', delayTime);
      clickTime = d.getTime();
    }
  }
  else 
  {
    dblClickTime = d.getTime();
    if (timeOut != null) {
      clearTimeout(timeOut);
      timeOut = null;
    }  
  return eval(cDoubleFunc);
  }
}

Powyższą funkcję możemy wykorzystać w następujący sposób:

<a href="#" onclick="clickMe('funckja()', '', event)" 
ondblclick="clickMe('', 'funkcja('Jakiś parametr do funkcji ')', event)">
kilknij</a>

Pages: 1 2

Post a Comment