【发布时间】:2014-01-21 06:17:31
【问题描述】:
在此演示中:http://www.netmagazine.com/files/tutorials/demos/2013/01/create-drag-and-drop-features-in-html5/demo/demo.html
您会看到可以使用拖放来移动项目。
执行此操作的代码非常简单:
function dragUser(user, event) {
event.dataTransfer.setData('User', user.id);
}
function dropUser(target, event) {
var user = event.dataTransfer.getData('User');
target.appendChild(document.getElementById(user));
}
它所做的是存储一个元素的 id,然后在 dom 中找到该 id 并使用 appendChild 移动它。
我遇到的问题是我有没有 ID 的元素。
<span class=".myClass">item</span>
所以,我没有办法唯一标识一个元素,所以我不确定如何移动元素。
【问题讨论】:
-
新浏览器有
getElementsByClassName,但您可能需要对返回的列表进行排序才能找到正确的浏览器。这里不得不提一下 jQuery 或其他框架,因为它可以通过多种方式找到元素。 -
id 属性可能是唯一的,这将是理想的,但您可以创建一个样式类或区分为名称的东西。不推荐,会更加混乱
-
你有什么理由不能只为你的元素添加唯一的 id 吗?
-
@LeeMeador,我只是重复元素太多,无法唯一区分这些
-
您可以创建一个唯一的 id 并将其附加到拖动开始时的元素。
标签: javascript html drag-and-drop