sortable.js中文文档

sortable.js filter 过滤或忽略指定元素

sortable.js filter 过滤或忽略指定元素,比限制第二行不允许拖动。该属性可以设置不允许拖拽元素的class样式类名,也可以自定义函数返回true或flase进行控制。

filter属性

属性名称类型说明
filter
string指定class样式名称,注意要带点 handle:".move"
function返回true不允许拖拽

通过设置class禁止拖动

通过设置class禁止拖动

<div class="box">
    <div id="g1" class="itxst">
        <div> item 2 无法被拖动 class包含了filter类</div>
        <div class="item" data-id="1" >
           item 1 
        </div>
        <div class="item filter" data-id="2" >
             item 2 
        </div>
        <div class="item" data-id="3" >
             item 3 
        </div>
    </div> 
</div>
<div id="msg"></div>
<script>
    //第一组 
    var g1 = document.getElementById('g1');
    var ops1 = {
        animation: 1000,
        delay: 30, 
        draggable: ".item",
        handle: ".move",
        /****************禁止被拖动的样式class****************/
        filter:".filter",
        //拖动结束
        onEnd: function (evt) {
            console.log(evt);
            //获取拖动后的排序
            var arr = sortable1.toArray();
            document.getElementById("msg").innerHTML = "A组排序结果:" + JSON.stringify(arr);
        },
    }; 
    var sortable1 = Sortable.create(g1, ops1);
</script>

通过自定义函数禁止拖动

在线例子

<div class="box">
    <div id="g1" class="itxst">
        <div>filter属性自定义函数限制了 item 2 无法被拖动 </div>
        <div class="item" data-id="1" >
           item 1 
        </div>
        <div class="item" data-id="2" >
             item 2 
        </div>
        <div class="item" data-id="3" >
             item 3 
        </div>
    </div> 
</div>
<div id="msg"></div>
<script>
    //第一组 
    var g1 = document.getElementById('g1');
    var ops1 = {
        animation: 1000,
        delay: 30, 
        draggable: ".item",
        //被禁止拖动的元素,第二个元素不允许被拖动
        filter: function (evt, item) {
            if (item.dataset.id == "2") return true;
            return false;
        }, 
        //拖动结束
        onEnd: function (evt) {
            console.log(evt);
            //获取拖动后的排序
            var arr = sortable1.toArray();
            document.getElementById("msg").innerHTML = "A组排序结果:" + JSON.stringify(arr);
        },
    }; 
    var sortable1 = Sortable.create(g1, ops1);
</script>
Catalog
快速入门 常用例子 对table表格拖动排序 多组间相互拖动排序 属性列表 group 多组之间拖动 sort 是否允许组内排序 delay 延迟多久允许拖动 delayOnTouchOnly 属性 animation 动画 handle 指定拖拽句柄 filter 过滤或忽略指定元素 dataIdAttr 获取排序后数据 ghostClass 自定义停靠位置样式 draggable 指定样式 dragClass 拖拽对象移动样式 chosenClass 选中对象样式 事件列表 onChoose 选中事件 onStart 开始拖动事件 onUnchoose 取消选中事件 onEnd 拖动结束事件 onAdd 多组新增元素事件 onUpdate 位置更改事件 onSort 拖拽位置改变事件 onRemove 从组移除事件 onMove 拖拽中的事件 onClone 克隆事件 onChange 拖拽中位置改变事件