Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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 在div之间来回移动和/或拖动元素并捕获它';s div字符串_Javascript_Php_Jquery_Html_Css - Fatal编程技术网

Javascript 在div之间来回移动和/或拖动元素并捕获它';s div字符串

Javascript 在div之间来回移动和/或拖动元素并捕获它';s div字符串,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,我在研究这条线索:,我的问题是,我们如何来回做这件事 这是一个完美的工程,因为它是。我可以前后拖动琴弦 我的目标是让它看起来像这样 将全部移动到父div 将全部移动到子div 但当我试着用按钮移动它时 <button type="button" onclick="Parent()"> Move From Parent to Child </button> <button type="button" onclick="Child()"> M

我在研究这条线索:,我的问题是,我们如何来回做这件事

这是一个完美的工程,因为它是。我可以前后拖动琴弦

我的目标是让它看起来像这样

将全部移动到父div

将全部移动到子div

但当我试着用按钮移动它时

<button type="button" onclick="Parent()">
    Move From Parent to Child
</button>

<button type="button" onclick="Child()">
    Move From Child to Parent
</button>
但我的问题是,如果我要改变这个值?它不会捕获正在更改的最新字符串

这就是我目前得到的

我的风格

    <style>
        .div-to-drag {
            width: 350px;
            height: 70px;
            padding: 10px;
            border: 1px solid #aaaaaa;
            overflow: scroll;
        }

        #parent {
            height: 100px;
            width: 300px;
            background: green;
            margin: 0 auto;
            overflow: scroll;
        }

        #child {
            height: 100px;
            width: 300px;
            background: blue;
            margin: 0 auto;
            overflow: scroll;
        }
    </style>

.div拖动{
宽度:350px;
高度:70像素;
填充:10px;
边框:1px实心#AAAAA;
溢出:滚动;
}
#母公司{
高度:100px;
宽度:300px;
背景:绿色;
保证金:0自动;
溢出:滚动;
}
#孩子{
高度:100px;
宽度:300px;
背景:蓝色;
保证金:0自动;
溢出:滚动;
}
我的HTML

    <div id='parent' class='div-to-drag' ondrop='drop(event)' ondragover='allowDrop(event)'>
        <?php echo "<span id='div1parent' draggable='true' ondragstart='drag(event)'>First Parent<br></span>"; ?>
        <?php echo "<span id='div2parent' draggable='true' ondragstart='drag(event)'>Second Parent<br></span>"; ?>
        <?php echo "<span id='div3parent' draggable='true' ondragstart='drag(event)'>Third Parent<br></span>"; ?>
    </div>
    <br>

    <div id='child' class='div-to-drag' ondrop='drop(event)' ondragover='allowDrop(event)'>
        <?php echo "<span id='div1child' draggable='true' ondragstart='drag(event)'>First Child<br></span>"; ?>
        <?php echo "<span id='div2child' draggable='true' ondragstart='drag(event)'>Second Child<br></span>"; ?>
        <?php echo "<span id='div3child' draggable='true' ondragstart='drag(event)'>Third Child<br></span>"; ?>
    </div>

<div id="result"></div>
<br>
<div id="result"></div>

    <br>

    <button type="button" onclick="Parent()">
        Move From Parent to Child
    </button>

    <button type="button" onclick="Child()">
        Move From Child to Parent
    </button>


因此,如果我理解正确,您希望将所有元素移动到子div或父div,而不仅仅是交换元素

您可以做的是附加元素。insertAfter将元素放在div之后,就像您对drop元素所做的那样。我选择循环通过click事件将要移动的元素上的id,然后将它们附加到父或子DIV元素。出于对循环进行编码的语义原因,我已更改了ID。这应该能解决你的问题

function Parent() {
for (var i = 1; i <= 3; i++) {
    $("#parent").append($("#parentElement" + i));
    $("#parent").append($("#childElement" + i));
    }
}
function Child() {
for (var i = 1; i <= 3; i++) {
    $('#child').append($("#parentElement" + i));
    $("#child").append($("#childElement" + i));   
    }
}
函数父函数(){

对于(var i=1;我很抱歉回复太晚。是的,这很有效,谢谢!我使用echo标记的唯一原因是因为我将从服务器获取数据,所以我会这样模拟。:)啊,我明白了!很高兴我能帮上忙:)
    <script>
        function allowDrop(ev) {
            ev.preventDefault();
        }

        function drag(ev) {
            ev.dataTransfer.setData("text", ev.target.id);
        }

        function drop(ev) {
            ev.preventDefault();
            var data = ev.dataTransfer.getData("text");
            ev.target.appendChild(document.getElementById(data));
        }

        function Parent() {
            $("#parent").insertAfter($("#child"));
        }

        function Child() {
            $("#child").insertAfter($("#parent"));
        }

$(document).ready(function() {
    var capturevalueschild = $.map($("#child span"), function(elem, index) {
    return $(elem).text();
    }).join("-");
    $("#displayvalueschild").text(capturevalueschild);
    });

    $(document).ready(function() {
    var capturevaluesparent = $.map($("#parent span"), function(elem, index) {
    return $(elem).text();
    }).join("-");
    $("#displayvaluesparent").text(capturevaluesparent );
    });
    </script>
function Parent() {
for (var i = 1; i <= 3; i++) {
    $("#parent").append($("#parentElement" + i));
    $("#parent").append($("#childElement" + i));
    }
}
function Child() {
for (var i = 1; i <= 3; i++) {
    $('#child').append($("#parentElement" + i));
    $("#child").append($("#childElement" + i));   
    }
}