从拖动的元素中获取父数据元素 - 拖放功能
Get parent data element from dragged element - Drag en drop function
我正在尝试检索 JavaScript 中拖动对象的父数据属性 data-date
。
所以我想从 div
“拖动我” 被拖动的地方接收数据日期属性 <td>
。
HTML 示例:
<td data-date="2/3/2020">
<div>drag me</div>
</td>
<td data-date="3/3/2020">
<-- DIV "Drag Me" will be dragged to this location --!>
</td>
我能够检索删除的数据日期属性,但无法弄清楚如何检索拖出的数据日期属性。
JS 从和到当前代码
dropped = ui.draggable,
newDate = $(this).data('date'),
console.log('Date From :' + dropped.data('date')); // needs to be found
console.log('Date To:' + newDate); // Works correctly
管理它的方法很少
我更喜欢在开始拖动时将初始父元素保存到某个变量中。
另一种选择是将所有需要的数据放在被拖动的元素本身上
我找到了将信息从 draggable 函数传递到 droppable 函数
的解决方法
在下面的示例中,我首先从可拖动函数中的父元素获取数据日期值。
检索此数据后,我们将值从 draggable 传递给 droppable 函数。
我们将变量命名为 oldDate 以便我们可以通过调用 "ui.draggable.data('oldDate')" 在 droppable 函数中访问它。我将在下面为大家提供示例代码。
可拖动函数:
$(".drag").draggable({
cursor: "crosshair",
revert: "invalid",
start: function(event, ui) {
var oldDate = $(this).parent().data('date'); // get value from parent data-date attribute
$(this).data('oldDate', oldDate); // pass variable to droppable function
}
});
可放置函数:
$("td[data-date]").droppable({
accept: ".drag",
activeClass: "over",
drop: function(event, ui) {
var displayOldDate = ui.draggable.data('oldDate'); // access the variable saved in draggable function
console.log('Dragged from: ' + displayOldDate);
}
});
我正在尝试检索 JavaScript 中拖动对象的父数据属性 data-date
。
所以我想从 div
“拖动我” 被拖动的地方接收数据日期属性 <td>
。
HTML 示例:
<td data-date="2/3/2020">
<div>drag me</div>
</td>
<td data-date="3/3/2020">
<-- DIV "Drag Me" will be dragged to this location --!>
</td>
我能够检索删除的数据日期属性,但无法弄清楚如何检索拖出的数据日期属性。
JS 从和到当前代码
dropped = ui.draggable,
newDate = $(this).data('date'),
console.log('Date From :' + dropped.data('date')); // needs to be found
console.log('Date To:' + newDate); // Works correctly
管理它的方法很少
我更喜欢在开始拖动时将初始父元素保存到某个变量中。
另一种选择是将所有需要的数据放在被拖动的元素本身上
我找到了将信息从 draggable 函数传递到 droppable 函数
的解决方法在下面的示例中,我首先从可拖动函数中的父元素获取数据日期值。 检索此数据后,我们将值从 draggable 传递给 droppable 函数。
我们将变量命名为 oldDate 以便我们可以通过调用 "ui.draggable.data('oldDate')" 在 droppable 函数中访问它。我将在下面为大家提供示例代码。
可拖动函数:
$(".drag").draggable({
cursor: "crosshair",
revert: "invalid",
start: function(event, ui) {
var oldDate = $(this).parent().data('date'); // get value from parent data-date attribute
$(this).data('oldDate', oldDate); // pass variable to droppable function
}
});
可放置函数:
$("td[data-date]").droppable({
accept: ".drag",
activeClass: "over",
drop: function(event, ui) {
var displayOldDate = ui.draggable.data('oldDate'); // access the variable saved in draggable function
console.log('Dragged from: ' + displayOldDate);
}
});