Javascript 双击事件也会触发EaselJS中的单击事件

Javascript 双击事件也会触发EaselJS中的单击事件,javascript,createjs,easeljs,Javascript,Createjs,Easeljs,添加事件侦听器 function Solitaire() { this.table.addEventListener("click", this.handleClick.bind(this)); this.table.addEventListener("dblclick", this.handleDoubleClick.bind(this)); } 处理事件 Solitaire.prototype.handleDoubleClick = function(event) {

添加事件侦听器

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
双击事件的预期输出(在控制台中)

Solitaire.prototype.handleDoubleClick = function(event) {
   console.log("DoubleClick");
};
Solitaire.prototype.handleClick = function(event) {
   console.log("Click");
};
DoubleClick
但我在控制台中得到的输出:

Click
Click
DoubleClick

我不知道easeljs,但我可以告诉你它是如何在jQuery中完成的,在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的事件处理的基本本质将保持不变。您可以在那里相应地模仿这种行为。

我不知道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的事件处理的基本本质将保持不变。您可以在那里相应地模仿这种行为。

谢谢您的时间。结果没有成功。我放了一些旗。一旦触发第一次单击,该标志将为真。如果标志为false,则将执行逻辑。没有运气,因为脚本执行速度比事件触发器慢。谢谢您的时间。结果没有成功。我放了一些旗。一旦触发第一次单击,该标志将为真。如果标志为false,则将执行逻辑。没有运气,因为脚本执行速度比事件触发器慢。