6

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

如您所见,我有一个非常简单的标记,带有一个(最终)将被拖动来改变背景位置的图像。如果您稍微拖动一下,您可以看到触发的事件的 x,y 坐标,如您所料,但最后触发的事件似乎总是有一个负的 X,Y 坐标对,这似乎取决于 "结果“jsfiddle框架。

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

标记 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);
});
4

1 回答 1

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();
});
于 2013-09-24T07:53:33.827 回答