2

我在我正在创建的项目中使用jquery.event.drag.js,并且我试图找出一种方法来为我拖动的每 X 个像素量运行一个脚本。为此,我只使用 X 轴。这是我现在拥有的一些代码。

$('body').drag(function( ev, dd ){
    var newcell = currentCell;
    var dragOffset = Math.floor(dd.offsetX / 100);
    if (dragOffset >= 1) {
        alert("Dragged 100px");
    }
    newcell += dragOffset;
    $('#info').html(dragOffset + " | " + dd.offsetX);
    updateStack(newcell, magnifyMode);
});

但是,这是可行的,因为此脚本针对拖动的每个像素运行,因此在拖动 100px 后会运行警报,但从那时起,它会针对我之后拖动的每个像素运行。我正在寻找一种只为每拖动 100 像素运行它的方法。有任何想法吗?

4

2 回答 2

2

我对 drag.js 并不完全熟悉,但是,您可以使用模除法来确保它每 100 像素。

x % 100 - 如果能被 100 整除,则为 0,所以

if(dd.offsetX % 100 == 0)
{
    alert("Dragged 100px");
}
于 2012-12-26T15:33:15.440 回答
2

上次发出警报时有一个外部变量跟踪:

var chunkedOffset = 0;
$('body').drag(function( ev, dd ){
    var newcell = currentCell;
    var dragOffset = dd.offsetX / 100;
    if (dragOffset > chunkedOffset) {
        chunkedOffset = dragOffset;
        alert("Dragged 100px");
    }
    newcell += dragOffset;
    $('#info').html(dragOffset + " | " + dd.offsetX);
    updateStack(newcell, magnifyMode);
});
于 2012-12-26T15:33:45.867 回答