2016-02-18 78 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 

但輸出I在控制檯中看到:

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

謝謝你的時間。它沒有解決。我設置了一些標誌。一旦第一次點擊被觸發,該標誌將爲真。如果標誌爲假,邏輯將被執行。由於腳本執行速度比事件觸發慢,因此沒有運氣。 –