Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-获取被删除元素的相对位置和属性_Javascript_Jquery_Jquery Ui_Jquery Ui Draggable - Fatal编程技术网

Javascript jQuery-获取被删除元素的相对位置和属性

Javascript jQuery-获取被删除元素的相对位置和属性,javascript,jquery,jquery-ui,jquery-ui-draggable,Javascript,Jquery,Jquery Ui,Jquery Ui Draggable,我有可拖放的元素,可以在可拖放的区域中拖放。如果删除元素,则调用drop函数: $('#droppable').droppable({ scope: "items", drop: function (event, ui) { // this one is called if an element is dropped in this droppable area } }); 我的可拖动元素: <div class="drag" data-notei

我有可拖放的元素,可以在可拖放的区域中拖放。如果删除元素,则调用
drop
函数:

$('#droppable').droppable({
    scope: "items",
    drop: function (event, ui) {
        // this one is called if an element is dropped in this droppable area
    }
});
我的可拖动元素:

<div class="drag" data-noteid="10">Drag me</div>
...
$('.drag').draggable({
    revert: "invalid",
    scope: "items"
});
但在这种情况下,我得到的只是
未定义的

有人知道我如何访问它们吗?我认为
event
ui
一定是可能的,这是被调用的
drop
函数的一个参数


提前感谢您并致以最良好的问候,Tim。

在本例中,您希望
ui
参数获得可拖动的,而不是
this
,它指的是可拖放区域,特别是
ui.draggable
。总体上应该是这样的:

drop: function (event, ui) {
  var pos = ui.draggable.offset(), dPos = $(this).offset();
  alert("nodeid: " + ui.draggable.data("noteid") + 
        ", Top: " + (pos.top - dPos.top) + 
        ", Left: " + (pos.left - dPos.left));
}
对于位置,我们需要减去下拉列表的上/左位置,以获得您想要的值,这就是要删除的上面的
dpo


.

在我的情况下,我发现上述方法不起作用。不知道为什么-它总是给我一个X=-7和Y=229

但这确实有效(位于drop函数处理程序中):


这对我也不起作用,但另一个答案只适用于有“简单”需求的人:)
drop: function (event, ui) {
  var pos = ui.draggable.offset(), dPos = $(this).offset();
  alert("nodeid: " + ui.draggable.data("noteid") + 
        ", Top: " + (pos.top - dPos.top) + 
        ", Left: " + (pos.left - dPos.left));
}
alert('X pos in drop parent container = ' + (ui.position.top - $(this).offset().top));