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

Tho*_*nes 5 javascript jquery drag

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

如您所见,我有一个非常简单的标记,其中的图像(最终)将在更改背景位置周围拖动。如果您稍加拖动,就会看到触发的事件的x,y坐标,如您所愿,但是上一次触发的事件似乎总是具有负的X,Y坐标对,这似乎取决于“结果” jsfiddle框架。

上一次事件的这些坐标是什么,为什么它们是负数?它们是从“拖动”类型的事件中触发的,但是只有在最终的mouseup发生时才发生(从拖动中不触发mouseup,因为那没有意义)。

标记HTML

<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
Run Code Online (Sandbox Code Playgroud)

的CSS

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

的JavaScript

$('img').on('dragstart drag dragstop', function(e){
    console.log(e.originalEvent);
});
Run Code Online (Sandbox Code Playgroud)

Sca*_*web 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();
});
Run Code Online (Sandbox Code Playgroud)