确定使用jQuery可排序插件定位的元素的当前位置
我使用jQuery UI可排序插件来移动页面上的元素。我的元素分为三列三行。移动对象时,我想知道元素的位置(第一行第一列、第一行第三列等)确定使用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除以元素的宽度,然后添加一个 演示: 脚本: $(“#可排序”)
下面是一个示例:当您移动一个元素时,会触发
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是的,我也注意到了。这只是一个起点,还需要一些工作。