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ドラッグされた後にアラートを実行しますが、それ以降は、ドラッグしたすべてのピクセルに対して実行されます。ドラッグする100pxごとにのみ実行する方法を探しています。何か案は?

4

2 に答える 2

2

私はdrag.jsに完全には精通していませんが、モジュラス除算を使用して100pxごとに確認することができます。

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 に答える