为什么触发的最后一个拖动事件具有负x和y坐标?

时间:2013-09-24 02:25:57

标签: javascript jquery drag

JSFiddle:http://jsfiddle.net/ypYTT/1/

正如你所看到的,我有一个非常简单的标记,一个图像(最终)将被拖动改变背景位置。 如果你拖动一下你可以看到事件的x,y坐标如你所期望的那样,但是最后一个事件似乎总是有一个负的X,Y坐标对,这似乎取决于“结果“jsfiddle frame。

上次活动的这些坐标是什么,为什么它们是否定的?它们是从“拖动”类型事件中被触发的,但只有在最终鼠标发生时才会触发(没有鼠标从拖动中触发,因为这没有意义)。

标记HTML

<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />

CSS

img {
    background: linear-gradient( to left top, blue, red);
    width:200px;
    height:200px;
    margin:20px;
}

的JavaScript

$('img').on('dragstart drag dragstop', function(e){
    console.log(e.originalEvent);
});

1 个答案:

答案 0 :(得分:0)

我在你的代码中发现了一个错误。 'dragstop'应该是'dragend'。

请看这个小提琴:http://jsfiddle.net/ypYTT/3/

我仍然可以看到显示负值,但它们不是控制台收到的最后一个值,因此可能会解决您的问题。

现在的代码如下:

$('img').on('dragstart drag dragend', function(e){
console.log(e.originalEvent);
});
$('img').on('mouseup', function(e){
    e.stopPropagation();
    e.stopImmediatePropagation();
});