2016-02-18 6 views
0

Добавление прослушивателя событийДвойной щелчок событие также вызывает Click событие в EaselJS

function Solitaire() { 
    this.table.addEventListener("click", this.handleClick.bind(this)); 
    this.table.addEventListener("dblclick", this.handleDoubleClick.bind(this)); 
} 

Обработка событий

Solitaire.prototype.handleDoubleClick = function(event) { 
    console.log("DoubleClick"); 
}; 
Solitaire.prototype.handleClick = function(event) { 
    console.log("Click"); 
}; 

Ожидаемые результаты (в консоли) на двойном событие щелчка

DoubleClick 

Но выход я получаю в консоли:

Click 
Click 
DoubleClick 

ответ

0

Я не знаю, о easeljs, но я могу сказать вам о том, как это делается в JQuery, где вам нужно «взломать» его заставить его работать.

var DELAY = 500; 
$('#my_element').on('click', function(e){ 

++clicks; // Count the clicks 

if(clicks === 1){ 
// One click has been made 

var myTimerToDetectDoubleClick = setTimeout(function(){ 

console.log('This was a single click'); 
doStuffForSingleClick(); 
clicks = 0; 
}, DELAY); 

} // End of if 
else{ 

// Someone is clicking pretty damn fast, they probably mean double click :p 
clearTimeout(myTimerToDetectDoubleClick); 
doStuffForDoubleClick(); 
clicks = 0; 
} 
}).on('dblclick', function(evt){ 

evt.preventDefault(); // cancel system's default double click 
}); 

Основная сущность останется неизменной для обработки событий для easeljs. Таким образом, вы можете подражать этому поведению.

+0

Спасибо за ваше время. Это не сработало. Я установил некоторый флаг. после первого нажатия запускается флаг. логика будет выполнена, если флаг имеет значение false. Не повезло, так как скорость выполнения скрипта медленнее, чем триггер события. –

Смежные вопросы