Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
确定使用jQuery可排序插件定位的元素的当前位置_Jquery_Jquery Ui_Position_Jquery Ui Sortable_Move - Fatal编程技术网

确定使用jQuery可排序插件定位的元素的当前位置

确定使用jQuery可排序插件定位的元素的当前位置,jquery,jquery-ui,position,jquery-ui-sortable,move,Jquery,Jquery Ui,Position,Jquery Ui Sortable,Move,我使用jQuery UI可排序插件来移动页面上的元素。我的元素分为三列三行。移动对象时,我想知道元素的位置(第一行第一列、第一行第三列等) 下面是一个示例:当您移动一个元素时,会触发sortchange事件。此事件的第二个参数包含有关已移动元素的信息。您要查找的属性是.offset,它提供了刚刚移动的元素的位置。若要获取行,请将ui.position.top除以元素的高度,然后添加一个。要获得该列,将ui.position.left除以元素的宽度,然后添加一个 演示: 脚本: $(“#可排序”)

我使用jQuery UI可排序插件来移动页面上的元素。我的元素分为三列三行。移动对象时,我想知道元素的位置(第一行第一列、第一行第三列等)


下面是一个示例:

当您移动一个元素时,会触发
sortchange
事件。此事件的第二个参数包含有关已移动元素的信息。您要查找的属性是
.offset
,它提供了刚刚移动的元素的位置。若要获取行,请将
ui.position.top
除以元素的
高度,然后添加一个。要获得该列,将
ui.position.left
除以元素的
宽度,然后添加一个

演示:

脚本:

$(“#可排序”).sortable();
$('#sortable').bind('sortchange',函数(事件,用户界面){
var width=event.target.clientWidth,
高度=event.target.clientHeight,
top=这个.offsetTop,
left=this.offsetLeft;
document.getElementById('position')。textContent=
“行:”+Math.floor((Math.abs(ui.offset.top+top)/高度)+1)
+“col:”+Math.floor((Math.abs(ui.offset.left+left)/宽度)+1);
} );
HTML:

行:不适用列:不适用
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
CSS:

#可排序{
列表样式类型:无;
保证金:0;
填充:0;
位置:相对位置;
宽度:325px;
}
#可排序li{
显示:内联块;
字号:4em;
高度:100px;
位置:相对位置;
文本对齐:居中;
垂直对齐:顶部;
宽度:100px;
}
输出:


请向我们展示您正在使用的代码。您好,当我在JSFIDLE上尝试时,发现这有点问题。我可以将2移动到中间,行/列报告为2/1。为mostpart工作though@EdSykes是的,我也注意到了。这只是一个起点,还需要一些工作。