2017-08-28 4 views
1

私はドラッグアンドドロップ機能の初心者です。データIDに基づいたJqueryのドラッグアンドドロップ

のjQuery:

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

function drag(ev) { 
    var DataId = ev.target.parentNode.getAttribute('data-id'); 
    alert("Data Id : "+DataId); 
    var selected_table =$("#rows .sim-row[data-id='"+DataId+"']"); 
    //var main_table = selected_table.parentNode; 
    alert("Data Id : "+selected_table.html()); 
    ev.dataTransfer.setData("text",selected_table); 
} 

function drop(ev) { 
    ev.preventDefault(); 
    var data = ev.dataTransfer.getData("text"); 
    alert("Data Id : "+data.html()); 
    ev.target.appendChild(data.clone()); 
} 

HTMLのCODE:

私はドラッグ午前たびのように達成し、その時の完全な表はdiv要素の下に追加する必要がなければなりませんので、画像をドロップしたい
<div id="content" ondrop="drop(event)" ondragover="allowDrop(event)"> 
</div> 

<div id="rows"> 
    <table class="sim-row" data-id="1001" id="1001"> 
     <tr> 
      <td class="sim-row-header1 sim-row-edit width100" data-type="title">Main Title</td>       
     </tr> 
    </table> 
</div> 

<div class="buttons" data-id="1001" id="1001" draggable="true" ondragstart="drag(event)" ondrop="drop(event)"> 
      <img id="image"src="<?php echo base_url()?>assets/invoice/preview/1001.png" alt="title">Title 
     </div> 

私はテーブル全体のように動作する複数のテーブルを持っていますdiv.Butに画像場所から削除してはいけません。クローンなどの必要なコンテンツのみ。

今はエラーが発生していますが、エラーが表示されている理由はわかりません。

TypeError: data.html is not a function 

どのように達成できますか? アイデア助言がありますか ?

+0

ここで私はimgのようにコンテンツdivにドラッグされますが、imgタグは削除する必要はありませんしたいと思っています –

答えて

1

ここでは、ソリューションhttps://jsfiddle.net/ed5bmth2/1/

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

 
drag = function(ev) { 
 
    var DataId = ev.target.parentNode.getAttribute('data-id'); 
 
    var selected_table =$("#rows .sim-row[data-id='"+DataId+"']"); 
 
    ev.dataTransfer.setData("text",DataId); 
 
} 
 

 
drop = function(ev) { 
 
    ev.preventDefault(); 
 
    var data = ev.dataTransfer.getData("text"); 
 
    ev.target.appendChild(document.getElementById(data)); 
 
}
#content { 
 
    height: 100px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="content" ondrop="drop(event)" ondragover="allowDrop(event)"></div> 
 

 
<div id="rows"> 
 
    <table class="sim-row" data-id="1001" id="1001"> 
 
    <tr> 
 
     <td class="sim-row-header1 sim-row-edit width100" data-type="title">Main Title</td>       
 
     </tr> 
 
    </table> 
 
</div> 
 

 
<div class="buttons" data-id="1001" id="1001" draggable="true" ondragstart="drag(event)" ondrop="drop(event)"> 
 
    <img id="image"src="https://www.w3schools.com/html/img_logo.gif" alt="title">Title 
 
</div>

これはあなたを助けることを願って行きます。

+0

返信いただきありがとうございます。私は上記のフィドルもうまく動作すると思う。 しかし、私は左側のパネルの内側にあり、divは右側にあります。 その時に画像をドラッグしようとしているときはいつでも、URLは変更されますがドラッグ可能ではありません。 このため私を案内してください –

+0

私はfatserを助けることができるように私のためのjsFiddleを作成できますか? – Shiladitya

+0

ええ、確かに、数分を与えてください –

関連する問題