双击事件还会触发EaselJS中的Click事件

时间:2016-02-18 07:20:01

标签: 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) {
   console.log("DoubleClick");
};
Solitaire.prototype.handleClick = function(event) {
   console.log("Click");
};

双击事件的预期输出(在控制台中)

DoubleClick

但是我在控制台中得到的输出:

Click
Click
DoubleClick

1 个答案:

答案 0 :(得分:0)

我不知道关于画架,但我可以告诉你它是如何在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
});

对于画架的事件处理,基本要素将保持不变。你可以在那里模仿这种行为。