【发布时间】:2014-11-12 19:57:49
【问题描述】:
我是 jQuery UI 的新手,除了从拖动的元素中删除特定的数据属性外,我真的不需要删除任何东西。使用这些数据,我将在 drop 元素中构建一个新元素。
我的 html 看起来像:
<div class="dropElem">
<div class="cod">Empty</div>
..elements i will populate later..
</div>
<div class="dragElem" data-cod='cod1'>
<div>Data</div>
...
</div>
<div class="dragElem" data-cod='cod2'>
<div>Data</div>
...
</div>
我的 Javascript 是这样的:
$('.dragElem').draggable({
helper: "clone",
revert: "true",
cursorAt: {top: 0, left: 0},//mandatory for my css structure
start: function (event, ui) {
var clone = $(ui.helper);
clone.addClass('helper')//class added to style the helper
}
});
$('.dropElem').droppable({
activeClass: "activeDrop",
hoverClass: "hoverActiveDrop",
tolerance: "pointer",//mandatory for my css structure
drop: function (event, ui) {
var cod = ui.helper.data('cod'));
//make new elements based on data received
}
});
基本上我使用助手的拖动视觉效果将数据从一个元素传输到另一个元素。
drop 后我需要做的是禁止被拖动的元素再次被拖动(我将添加一个类来突出显示这一点)并禁止插入的元素接收任何其他 dragElem(我将添加一个类到也是)。
PS:我也不确定var cod = ui.helper.data('cod')); 是否是获取数据属性的最佳方式。
任何建议将不胜感激!
【问题讨论】:
-
在拖放时向拖动的元素添加一个类(或数据属性,..)。检查要拖动的元素是否具有可拖动的
start函数中的类-> 如果有,则return false取消可拖动。 (jsfiddle.net/Lwu3zm3t)
标签: javascript jquery html jquery-ui drag-and-drop