思考:如何实现排序后,将排序位置修改为拖拽之后的位置?
例如:将“端口中断或不均处理”从第一个位置拖到第三个位置,怎么修改他们在数组中的位置
拖拽前 拖拽后关键代码:
this.showItems.splice(newIndex, 0, this.showItems.splice(oldIndex, 1)[0])
this.showItems: ['端口中断或不均处理','自动登记硬故','执行命令']
oldIndex表示 '端口中断或不均处理'被拖拽前的位置
newIndex表示 '端口中断或不均处理'被拖拽后的位置
解析:
1、先执行 this.showItems.splice(oldIndex, 1)[0]:将oldIndex位置的数据删除并取出,oldIndex后面位置的数据会依次前移一位
2、再执行this.showItems.splice(newIndex, 0, xxx) :将被删除元素插入到新位置(xxx表示上面的被删除数据)
试一试 点击在w3c上试一下
<html>
<body>
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
document.write(arr + "<br />")
arr.splice(2,0,arr.splice(0,1))
document.write(arr)
</script>
</body>
</html>
网友评论