Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从拖动的元素中获取相关数据元素-拖放函数_Javascript_Drag And Drop_Element_Custom Data Attribute - Fatal编程技术网

Javascript 从拖动的元素中获取相关数据元素-拖放函数

Javascript 从拖动的元素中获取相关数据元素-拖放函数,javascript,drag-and-drop,element,custom-data-attribute,Javascript,Drag And Drop,Element,Custom Data Attribute,我试图在JavaScript中检索被拖动对象的父数据属性data date。 因此,我希望接收数据日期属性,从中拖动div“drag me” HTML示例: <td data-date="2/3/2020"> <div>drag me</div> </td> <td data-date="3/3/2020"> <-- DIV "Drag Me" will be drag

我试图在JavaScript中检索被拖动对象的父数据属性
data date
。 因此,我希望接收数据日期属性
,从中拖动
div
“drag me”

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>
$(".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);
    }
 });

管理它的方法很少

  • 我更喜欢在开始拖动时将初始父元素保存到某个变量中

  • 另一个选项是在被拖动的元素本身上拥有所有需要的数据


  • 我找到了一种方法,可以将信息从可拖动功能传递到可拖放功能

    在下面的示例中,我首先从draggable函数中的父元素获取数据日期值。 检索此数据后,我们将值从draggable传递到droptable函数

    我们将de variable命名为oldDate,因此可以通过调用“ui.draggable.data('oldDate')”在可拖放函数中访问它。下面我将为你们提供一个示例代码

    可拖动功能:

    <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>
    
    $(".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);
        }
     });
    
    可下拉功能:

    <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>
    
    $(".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);
        }
     });