2
私は何かをドラッグする機能を持っています。私のjs:mouseupイベントは常に発生するわけではありません
$(function() {
$(svgcanv).css('cursor', '-moz-grab');
var leftButtonDown = false;
$(document).mousedown(function(e){
console.log('pressed');
// Left mouse button was pressed, set flag
if(e.which === 1) leftButtonDown = 1;
});
$(document).mouseup(function(e){
console.log('released');
// Left mouse button was released, clear flag
leftButtonDown = 0;
$(svgcanv).css('cursor', '-moz-grab');
firstDragCanvas = 1;
});
$(mainGroup).mousemove(function(e){
if (leftButtonDown == 1)
{
$(svgcanv).css('cursor', '-moz-grabbing');
var posX = e.pageX;
var posY = e.pageY;
if (firstDragCanvas == 0)
{
posX = e.pageX - canvasPosX;
posY = e.pageY - canvasPosY;
}
else
{
canvasPosX = e.pageX - translateX;
canvasPosY = e.pageY - translateY;
posX = translateX;
posY = translateY;
firstDragCanvas = 0;
}
if (posX > 0)
posX = 0;
if (posX < -canvasWidth + $("#holder").width())
posX = -canvasWidth + $("#holder").width();
translateX = posX;
translateY = posY;
mainGroup.setAttribute("transform","translate("+posX+","+posY+") scale("+currentZoomLevel+")");
}
});
});
問題は、mouseupイベントが常にトリガされるとは限りません。他の2つはうまく動作します。初めて物事を動かすとすべて正常に動作します。しかし、私がすぐに押してドラッグすると、マウスアップがトリガーされません。ドラッグを停止したら、どこかをクリックしてから再度ドラッグしてスクリプトを再実行します。
をそして、いや...それはSVGです: -
マイコンソール(マウスダウンからログイン2ドラッグして、その後、2連続で「押す」の文字列を気づく再びドラッグして、[OK]をクリックします)その中にドラッグする必要があるので、jQueryをドラッグすることはできません。
は一度だけのイベントの前に必要とされています。私は答えの前に2分でそれを考え出した。 – zozo