sortable.js 拖拽排序及配置项说明

时间:2022-12-31 07:16:57
// 拖动排序
$(function() {
/*排序*/
//排序
// Simple list
var list = document.getElementsByClassName("application-ul")[];
new Sortable(list, {
group: "name",
animation: , //动画参数
store: null, // @see Store
/* handle: ".BtnMove",*/ // 点击目标元素开始排序(只能拖拽当前元素)
draggable: ".application-li", // 指定那些选项需要排序
// ghostClass: "SortableGhost", onStart: function( /**Event*/ evt) { // 拖拽
var itemEl = evt.item;
console.log('拖拽1',itemEl)
},
onEnd: function( /**Event*/ evt) { // 拖拽
var itemEl = evt.item;
console.log('拖拽2',itemEl)
},
onAdd: function( /**Event*/ evt) {
var itemEl = evt.item;
console.log('拖拽3',itemEl)
},
onUpdate: function( /**Event*/ evt) {
var itemEl = evt.item; // 当前拖拽的html元素
console.log('拖拽5',itemEl)
},
onRemove: function( /**Event*/ evt) {
var itemEl = evt.item;
console.log('拖拽6',itemEl)
}
});
})
下载地址:https://github.com/RubaXa/Sortable

var defaults = {

 group: Math.random(), //产生一个随机数 //产生一个随机数 //改参数是对象有三个两个参数 pull: 拉, put:放 默认都是是true pull还有一个值是: 'clone', pull: 拉, put:放 设置为false 就不能拖拽了, 如果 pull 这种为'clone'则可以从一个列表中拖拽到另一个列表并且克隆dom节点, name:是两个或者多个列表拖拽之间的通信,两个或者三个列表的nea

 sort: true, // 类型:Boolean,值为false时,在自己的拖拽区域不能拖拽,但是可以拖拽到其他区域,true则可以做自己区域拖拽或者其他区域拖拽

 disabled: false, //类型:Boolean 是否禁用拖拽 true 则不能拖拽 默认是true

 store: null, // 用来html5 存储的 改返回 拖拽的节点的唯一id

 handle: null, //handle 这个参数是设置该标签,或者该class可以拖拽 但是不要设置 id的节点和子节点相同的tag不然会有bug

 scroll: true, //类型:Boolean,设置拖拽的时候滚动条是否智能滚动。默认为真,则智能滚动,false则不智能滚动

 scrollSensitivity: , //滚动的灵敏度,其实是拖拽离滚动边界的距离触发事件的距离边界+-30px的地方触发拖拽滚动事件,

 scrollSpeed: , //滚动速度

 draggable: /[uo]l/i.test(el.nodeName) ? 'li' : '>*',//draggable 判断拖拽节点的父层是否是ou ul

 ghostClass: 'sortable-ghost', // 排序镜像class,就是当鼠标拉起拖拽节点的时候添加该class

 chosenClass: 'sortable-chosen', // //为拖拽的节点添加一个class 开始拖拽鼠标按下去的时候 添加该class

 ignore: 'a, img', //a 或者是img

 filter: null, //改参数可以传递一个函数,或者字符串,字符串可以是class或者tag,然后用于触发oFilter函数,这样可以用来自定义事件等

 animation: , //拖拽动画时间戳

 setData: function (dataTransfer, dragEl) { //设置拖拽传递的参数

 dataTransfer.setData('Text', dragEl.textContent);

 },

 dropBubble: false, // 发生 drop事件 拖拽的时候是否阻止事件冒泡

 dragoverBubble: false, //发生 dragover 事件 拖拽的时候是否阻止事件冒泡

 dataIdAttr: 'data-id', //拖拽元素的id 数组

 delay: , //延迟拖拽时间, 其实就是鼠标按下去拖拽延迟

 forceFallback: false, // 不详

 fallbackClass: 'sortable-fallback', // 排序回退class

 fallbackOnBody: false,// 是否把拖拽镜像节点ghostEl放到body上

 };