私はjQuery UIのドラッグ可能な要素を持っています。それは非常に簡単です。それは、グリッドに設定された別のdiv(ドラッグ可能な部分)を持つ単なるdiv(コンテナ)です。問題は、要素を1回移動した後、最初の点に戻ることができないことです。私は、グリッドのサイズを変更する場合、それは動作しますが、私はそれを下回るjQuery UI draggableは最初のポイントに戻ることはありません
関連JSいくつかの要素にマッチだとして、それがこのグリッド上で動作する必要があります。
$('<div class="slider_wrap"><div class="slider"></div></div>').appendTo('#chart');
$('#chart .slider')
.draggable({
containment:'parent',
grid:[distanceBetweenPoints,0],
opacity: 0.25
})
.bind('mousedown', function(e, ui){
// bring target to front
$(e.target.parentElement).append(e.target);
})
.bind('drag', function(e, ui){
// update coordinates manually, since top/left style props don't work on SVG
e.target.setAttribute('x', ui.position.left);
})
.bind('dragstop',function(e, ui){
//a = true offset of slider piece
var a = ui.position.left + distanceBetweenPoints;
var b = containerWidth;
var c = thePoints.length;
var d = b/c;
var x = a/d;
//Since the points are in an array which starts at 0, not 1, we -1 from the currentPoint
console.log(x)
var currentPoint = Math.round(x)-1;
thisPointIndex = currentPoint;
chart.series[0].data[currentPoint].select(true);
});
任意のアイデア?
簡単なテストの後:要素をドラッグすると幅の計算に問題があるようです。要素をドラッグしてみてください。しばらくすると、要素が左に回り始めます。 ドラッグ機能から問題が発生している可能性があります。私は確かにそれを知っていないが、たぶんそれは浮動小数点ではなく整数を許すだけである。 – kufi