jquery.dragsort.js 实现拖拽过程遇到的问题

1、在IE下第一次拖动的时候,被拖动的li元素会不显示,查了很多资料发现是因为在IE中定位出了问题,li标签还在,只是位置计算出错。解决的办法是在li的css样式中position设置为relative。这个问题在火狐等其他浏览器是不存在的。

2、如果拖动的li所在容器出现了滚动条,当滚动条滑到最下面的时候,拖拽下面的li的浮动层位置会出现偏移。解决的办法是在jquery.dragsort.js中,this.draggedItem.css({ top: top, left: left });这句话决定了浮动层的位置,只需将top值加上容器滚动条的scrollTop值即可。

附带jquery.dragsort.js中参数的解释:

dragSelector -- CSS选择器内的元素的列表项的拖动手柄。默认值是“li”。
dragSelectorExclude  -- CSS选择器的元素内的dragSelector不会触发dragsort的。默认值是"input, textarea, a[href]"。
dragEnd  -- 拖动结束后将被调用的回调函数.
dragBetween  -- 设置为“true”,如果你要启用多组列表之间拖动选定的列表。 默认值是false。
placeHolderTemplate  -- 拖动列表的HTML部分。默认值是"<li></li>".
scrollContainer  -- CSS选择器的元素,作为滚动容器,例如溢出的div设置为自动。 默认值是“窗口“.
scrollSpeed  -- 一个数字,它代表了速度,页面拖动某一项时,将滚动容器外,较高使用价值的是速度和较低的值是较慢的。 如果设置为"0"以禁用滚动。默认值是"5".

原文地址:https://www.cnblogs.com/jiangyy/p/3839711.html