【问题标题】:javascript drag and drop table rowsjavascript拖放表格行
【发布时间】:2017-01-10 02:19:16
【问题描述】:

这是我的动态表,我得到了三个具有不同 ID 的表。

<?php
echo "<table class='table table-hover table-bordered' ondrop='drop(event,this)' ondragover='allowDrop(event)' id='".$type."'>";
if(empty($players))
    echo "<tr><td></td></tr>";
foreach($players as $p)
{
    echo "<tr data-id='".$p['to']."' data-fixture='".$p['fixture']."' data-team='".$p['team']."' draggable='true' ondragstart='drag(event,this)' id='".$type."aa'>";
    echo "<td >".$p['name']."</td>";
    echo "</tr>";
}
echo "</table>";
?>

我的 Javascript 是这样的:

function allowDrop(ev) {
    ev.preventDefault();
}


  function drag(ev,str) {
      //alert(str);

    var temp = str.parentNode;
    child = temp.children;
    if(child.length==1)
    {
    $(temp).append("<tr><td></td></tr>");
    }

    ev.dataTransfer.setData("text", ev.target.id);
    ev.dataTransfer.setData("val", ev.target.getAttribute('data-id'));
    ev.dataTransfer.setData("fixture", ev.target.getAttribute('data-fixture'));
    ev.dataTransfer.setData("team", ev.target.getAttribute('data-team'));
}


function drop(ev,str) {
    ev.preventDefault();
    var data = ev.dataTransfer.getData("text");
    var id = ev.dataTransfer.getData("val");
    var fixture = ev.dataTransfer.getData("fixture");
    var team = ev.dataTransfer.getData("team");
    ev.target.appendChild(document.getElementById(data));
    //alert(fixture);
    if(str.id=='avl')
        status=1;
    else if(str.id=='uavl')
        status=2;

            $.ajax({
       url: "<?php echo base_url();?>index.php/teams/update_players/"+status+"/"+id+"/"+fixture+"/"+team,
       type: 'GET',
       success: function(data) {
          //$("#a_p").html(data);
          //alert(data);
       },
        });

} 

当将表行从一个表删除到另一个时.. tr 被删除到 td 而不是表中。

喜欢这个

<table>
<tr>
<td>
<tr> (this is a dropped row)
<td></td>
</tr>
</td>
</tr>
</table>

【问题讨论】:

    标签: javascript drag-and-drop html-table rows


    【解决方案1】:

    您的drop 函数将一个子级附加到ev.target。尝试使用console.log 来检查tagName 中的ev.target。如果是TD,那是你的问题。

    没有在评论部分提供这个,因为我在提交 cmets 方面没有足够的声誉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多