2012-03-21 3 views

答えて

10

、あなたはドラッグされた要素にアクセスするためにui.helperを使用することができます。ブラッドが示唆したように続いて、その上にoffsetを使用します。

$("#image").draggable({ 
    stop:function(event,ui) { 
     var wrapper = $("#wrapper").offset(); 
     var borderLeft = parseInt($("#wrapper").css("border-left-width"),10); 
     var borderTop = parseInt($("#wrapper").css("border-top-width"),10); 
     var pos = ui.helper.offset(); 
     $("#source_x").val(pos.left - wrapper.left - borderLeft); 
     $("#source_y").val(pos.top - wrapper.top - borderTop); 
     alert($("#source_x").val() + "," + $("#source_y").val()); 
    } 
});​ 

その後、それはあなたのラッパーにそれを調整するだけです - 減算そのオフセットとその境界線の幅 - とあなたの入力のvalに設定します。 (国境をハードコーディングして申し訳ありませんが、私は cssを使用して、それを取り出すことができませんでした) 編集:!そこにそれはanother questionで解決策を発見された)

あなたが停止に建て使用する必要があります

http://jsfiddle.net/mgibsonbr/naqbq/4/

+0

ありがとう@mgibsonbr :) –

5

jQueryの.offset()を使用できます。 stopコールバックで

http://api.jquery.com/offset/

alert($('#image').offset().top); 
alert($('#image').offset().left); 
2

あなたがトップを得ることができ

$("#image").draggable({ 
    stop: function() { 
     // check for positioning here using .css or .offset 
    } 
}); 
2

、およびLEF:イベント

$('selector').draggable({ 
    drag: function(event, ui) { 
    ui.position.top; // .left 
    // or 
    $('selector').position().top; // current position of an element relative to the offset parent 
    $('selector').offset(); // retrieves the current position relative to the document. 
    } 
})