2013-03-27 5 views
2

Возможно ли создать пользовательские события (например, тройной щелчок или проведите по экрану) в JavaScript, которые будут запускаться с определенными условиями? Возможно, чтобы слушать это пользовательское событие:Пользовательские события в JavaScript

addEventListener('trplclick', handler, false); 

Так обработчик будет вызываться только если 3 кликов было сделано в течение 600 мс, например.

+0

со стороны клиента на стороне сервера? –

+0

что с клиентской стороны на сервер? –

+0

@AkshayJoy он отметил это с помощью javascript? И код js. Это клиентская сторона? –

ответ

1

Вам необходимо запустить событие triplclick самостоятельно. Слушайте отдельные события кликов, подсчитывайте их и запускайте triplclick, когда это имеет смысл.

Посмотрите на document.dispatchEvent.

Я использую JQuery, чтобы продемонстрировать эту концепцию, но вам не нужно:

var count = 0; 
var resetTimeout - 1; 
$(element).on("click", function(){ 
    count++; 
    clearTimeout(resetTimeout); 
    if (count === 3) 
    { 
     count = 0; 
     $(element).trigger("trplclick"); 
    } 
    else 
    { 
     resetTimeout = setTimeout(function(){ 
      count = 0; // Don't count if no click within the last second. 
     }, 1000); 
    } 
}); 
0

Смотрите аналогичный вопрос здесь: How do I listen for triple clicks in JavaScript?

В основном то, что он делает, сочетая двойное событие щелчка и одного нажмите событие вместе, чтобы имитировать тройной щелчок. При срабатывании события двойного щелчка установите тайм-аут на 200 мс. Если появится следующий щелчок, проверьте, не истечет ли таймер. Если этот клик произойдет через 200 мс после предыдущего двойного щелчка (в это время таймер был установлен равным нулю в обработчике с двойным щелчком), отбросьте этот клик, иначе считайте его тройным щелчком.

Для настройки пользовательского события в целом, я буду называть вас блоге Nicholas C. Zakas в: http://www.nczonline.net/blog/2010/03/09/custom-events-in-javascript/