Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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 UI可拖动:获取许多动态创建的元素的拖动偏移量_Javascript_Jquery_Html_Jquery Ui_Jquery Ui Draggable - Fatal编程技术网

Javascript jQuery UI可拖动:获取许多动态创建的元素的拖动偏移量

Javascript jQuery UI可拖动:获取许多动态创建的元素的拖动偏移量,javascript,jquery,html,jquery-ui,jquery-ui-draggable,Javascript,Jquery,Html,Jquery Ui,Jquery Ui Draggable,我正在DOM中创建一个元素,并使用javascript将许多单元格动态附加到该元素中。为了便于解释,假设我创建了10行,每行10个字段。我使用简单的计数器为这些字段中的div容器分配唯一的id。很简单。这就是我得到的: <table> <tr><td><div id="field0"><div id="handle0"></div></div></td></tr> ....

我正在DOM中创建一个
元素,并使用javascript将许多单元格动态附加到该元素中。为了便于解释,假设我创建了10行,每行10个字段。我使用简单的计数器为这些字段中的div容器分配唯一的id。很简单。这就是我得到的:

<table>
    <tr><td><div id="field0"><div id="handle0"></div></div></td></tr>
    .....
    <tr><td><div id="field99></div id="handle99"></div></div></td></tr>
    </table>

.....

您可以修改offsetParent而不是offsetParent

var xPos=(offset.left)-(this.parent().offset().left);
var yPos=(offset.top)-(this.parent().offset().top)

您可以修改offsetParent而不是offsetParent

var xPos=(offset.left)-(this.parent().offset().left); var yPos=(offset.top)-(this.parent().offset().top)

var xPos=(offset.left)-(this).position().left var yPos=(offset.top)-(this).position().top

var xPos=(offset.left)-(this).position().left
var yPos=(offset.top)-$(this.position().top

我在这里看到一些问题,
offset
是一个对象,您试图将其作为字符串记录。另外,与其遍历所有字段来添加可拖动,不如添加一个类,以便可以轻松引用需要可拖动的所有内容?修复了console.log错误。我认为我不能使用类,因为我需要访问每个唯一句柄ID相对于每个唯一容器ID的偏移值。我在这里看到了一些问题,
offset
是一个对象,您正在尝试将其作为字符串记录。另外,与其遍历所有字段来添加可拖动,不如添加一个类,以便可以轻松引用需要可拖动的所有内容?修复了console.log错误。我认为我不能使用类,因为我需要访问每个唯一句柄ID相对于每个唯一容器ID的偏移值。
for (var counter = 0; counter < 100; counter++) {
var dragHandle = $('#handle' + counter);
var dragField = $('#field' + counter);
    dragHandle.draggable({
                    containment: dragField,
                    scroll: false,
                    drag: function () { 
                             var offset = $(this).offset();
                             var xPos = (offset.left) - $(this).offsetParent().offset().left;
                             var yPos = (offset.top) - $(this).offsetParent().offset().top;
                                  console.log(xPos); 
                                  console.log(yPos); // These add up?!
                          }
    });
}