Google Chrome中的MouseUp和MouseDown事件

时间:2013-07-04 11:57:57

标签: javascript google-chrome canvas jquery

我有一个简单的html5 / canvas和js-setup:

HTML

<canvas id="canvas" width="500" height="500" ></canvas>

JS

var canvas = $("#canvas"),
    c = canvas[0].getContext("2d");

c.fillStyle = "gray";
c.fillRect(0, 0, 500, 500);

$(document).mousedown(function() {
    console.log('down');
});
$(document).mouseup(function() {
    console.log('up');
});

让我感到震惊的是,我能够像google chrome这样记录事件

down
up
down
up
down 
down 
down 
down
up
down
down
down

意思是,我得到了连续的事件。我认为它是由canvas元素引起的,因为没有它我就无法重现这种行为。

这是一个小提琴:http://jsfiddle.net/SunnyRed/zcmaT/

更新

我认为只有当用户点击并拖动时才会发生这种情况,这可能是我的方案中的情况。这是一个简单的点击demo。我无法在Firefox和Opera中重现它。

1 个答案:

答案 0 :(得分:0)

我可以复制这个的唯一方法就是在我的演示中我要么:

  • 在页面外开始点击(在JS小提琴的另一个iframe中),然后将鼠标放在画布上。或
  • 开始在画布上单击,然后将其释放到页面边界之外(例如在页面填充上)。

我相信这是正确的行为。