element 的 table使用Sortable.js进行拖拽的时候,禁止某些列的拖拽功能

element 的 table使用Sortable.js进行拖拽的时候,禁止某些列的拖拽功能,第1张

因为element中的table不具备拖拽排序的功能,所以有时候会用到Sortable.js去实现拖拽的功能。具体的使用方法可以参考以下 https://blog.csdn.net/weixin_34301307/article/details/87527853

但是有时候我们只想特定的列能够进行拖拽,特别是在有input输入框的时候,如果包含input的列也能进行拖拽的话,会存在鼠标不能拖动选中input输入框里面内容的问题,因为但在input上拖动时,已经启动了拖拽功能,所有会导致无法选中input里面的内容,最直接效果就是,但你想复制粘贴input里面内容的时候,你会发现压根选不到里面的内容,而是被拖着走。

给需要拖动的列加一个共同的class,比如

然后运用handle属性就可以啦,handle就是用来控制允许拖动的元素的

业务场景:

经过百度搜索解决方案

1 :给点击的事件添加阻止冒泡方法   event.stopPropagation()

2 :给拖拽盒子里的子元素添加  pointer-events: bounding-box 属性

Sortable.create(document.getElementById('collter1'), {

group : {

name : "words",

pull : true,

put : true

},

animation : 150, //动画参数

onAdd : function(evt) {//拖拽时候添加有新的节点的时候发生该事件

},

onUpdate : function(evt) {//拖拽更新节点位置发生该事件

console.log('onUpdate.foo:', [evt.item, evt.from])

},

onRemove : function(evt) {//删除拖拽节点的时候促发该事件

console.log('onRemove.foo:', [evt.item, evt.from])

},

onStart : function(evt) {//开始拖拽出发该函数

console.log('onStart.foo:', [evt.item, evt.from])

},

onSort : function(evt) {//发生排序发生该事件

console.log('onUpdate.foo:', [evt.item, evt.from])

},

onEnd : function(evt) {//拖拽完毕之后发生该事件

//alert(evt.oldIndex)

//alert(evt.newIndex)

if(evt.oldIndex<evt.newIndex){

for (var i = evt.oldIndexi <json[id].lengthi++) {

if(i >evt.newIndex){

break

}else{

var name,str,style,num

name = json[id][i+1]["name"]

num = json[id][i+1]["num"]

str = json[id][i+1]["str"]

style = json[id][i+1]["style"]

json[id][i+1]["name"] = json[id][i]["name"]

json[id][i+1]["num"] = json[id][i]["num"]

json[id][i+1]["str"] = json[id][i]["str"]

json[id][i+1]["style"] = json[id][i]["style"]

json[id][i]["name"] = name

json[id][i]["num"] = num

json[id][i]["str"] = str

json[id][i]["style"] = style

}

}

}

if(evt.oldIndex>evt.newIndex){

for (var i = evt.oldIndexi >= 0 i--) {

if(i <evt.newIndex){

break

}else{

var name,str,style,num

name = json[id][i-1]["name"]

num = json[id][i-1]["num"]

str = json[id][i-1]["str"]

style = json[id][i-1]["style"]

json[id][i-1]["name"] = json[id][i]["name"]

json[id][i-1]["num"] = json[id][i]["num"]

json[id][i-1]["str"] = json[id][i]["str"]

json[id][i-1]["style"] = json[id][i]["style"]

json[id][i]["name"] = name

json[id][i]["num"] = num

json[id][i]["str"] = str

json[id][i]["style"] = style

}

}

}

}

})


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11747651.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存