jquery.event.drag - 为拖动的每个X像素运行脚本

时间:2012-12-26 15:27:11

标签: javascript jquery drag-and-drop

我在我正在创建的项目中使用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拖动后运行警报,但从那时起,它会针对每个像素运行,之后我将其拖动。我正在寻找一种方法,只运行它每100px我拖动它。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

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

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

if(dd.offsetX % 100 == 0)
{
    alert("Dragged 100px");
}

答案 1 :(得分: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);
});