javascript - JavaScript 中的元素排序

标签 javascript

我有一个可以拖放的节点列表。

<ul id="container">
<li id="item_1">Item 1</li>
<li id="item_2">Item 2</li>
<li id="item_3">Item 3</li>
<li id="item_4">Item 4</li>
<li id="item_5">Item 5</li>
<li id="item_6">Item 6</li>
</ul>

我可以单击 #item_5 并将其拖到 #item_2 上方并“放置”, 我可以返回源 (#item_5) 和掉落在 (#item2) 上的项目

如何在目标 (#item_2) 之前插入掉落的项目 (#item_5),然后 将第 2 项后的每个节点调整回一个位置?我需要有关执行此任务的方法的帮助

例如

function movebefore(a, b) {...}

(请假设不能使用 jQuery 等 JavaScript 框架)

实际代码: http://jsfiddle.net/danmasq/BkNAF/

最佳答案

dropNode 是放置目标
DragNode是被拖动的节点
你提到你两者都可用。

var movebefore = function( dragNode , dropNode ) {

    dropNode.parentNode.insertBefore( dragNode , dropNode );

}

关于javascript - JavaScript 中的元素排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4082464/

相关文章:

javascript - 有没有在 iPhone 上不使用 WebView 就允许 javascript 的方法?

javascript - ACE 编辑器 "end of parsing"事件

javascript - 解码无法使用 Base64

javascript - 根据另一个数组对对象数组进行排序

javascript - 如何在 Chrome 中关闭特定网站的缓存?

javascript - 如何以 Angular 方式将输入变量检索到 javascript Controller 上?

javascript - AJAX响应后重新触发javascript默认事件

javascript - Google Map API v3 - 以最大缩放显示所有可见标记

javascript - $(window).load 在带有异步 js 库的 IE 中触发得太快

javascript - 显示一个弹出窗口,其中包含 html 表格中每一行的详细信息