js利用拖放實(shí)現(xiàn)添加刪除
更新時間:2020年08月27日 08:42:23 作者:mo-2016
這篇文章主要為大家詳細(xì)介紹了js利用拖放實(shí)現(xiàn)添加刪除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了js利用拖放實(shí)現(xiàn)添加刪除的具體代碼,供大家參考,具體內(nèi)容如下
實(shí)現(xiàn)的效果如下:
代碼如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html" charset="utf-8"> <title>通過拖放實(shí)現(xiàn)添加刪除</title> <style type="text/css"> div>div{ display: inline-block; padding: 10px; background-color: #aaa; margin: 3px; } </style> </head> <body> <!-- 文件所在地 --> <div style="width: 600px;border: 1px solid black;"> <h2>可將喜歡的項目拖進(jìn)收藏夾</h2> <div draggable="true" "dsHandler(event);">瘋狂Java聯(lián)盟</div> <div draggable="true" "dsHandler(event);">瘋狂軟件教育</div> <div draggable="true" "dsHandler(event);">關(guān)于我們</div> <div draggable="true" "dsHandler(event);">瘋狂成員</div> </div> <!-- 收藏夾 --> <div id="dest" style="width: 400px;height: 260px;border: 1px solid black;float: left;"> <h2 "return false;">收藏夾</h2> </div> <!-- 垃圾簍 --> <img id="gb" draggable="false" alt="垃圾簍" src="C:\Users\Administrator\Desktop\timg.jpg" style="float: left;width: 200px;height: 200px;"> <!-- js --> <script type="text/javascript"> let dest=document.getElementById("dest"); //開始拖動事件的事件監(jiān)聽器 let dsHandler=function(event){ event.dataTransfer.setData("text/plain","<item>"+event.target.innerHTML); } dest.function(event){ event.preventDefault(); let text=event.dataTransfer.getData("text/plain"); //如果該text以<item>開頭 if(text.indexOf("<item>")==0){ //創(chuàng)建一個新的div let newEle=document.createElement("div"); //以當(dāng)前事件為該元素生成唯一的ID newEle.id=new Date().getUTCMilliseconds(); //該元素內(nèi)容為“拖”過來的數(shù)據(jù) newEle.innerHTML=text.substring(6); //設(shè)置該元素允許拖動 newEle.draggable="true"; //為該事件的開始拖動事件指定監(jiān)聽器 newEle.function(event){ //將被拖動元素的id屬性值設(shè)置成被拖動的數(shù)據(jù) event.dataTransfer.setData("text/plain","<remove>"+newEle.id); } dest.appendChild(newEle); } } //當(dāng)把被拖動元素“放”到垃圾簍上時觸發(fā)該方法 document.getElementById("gb").function(event){ let id=event.dataTransfer.getData("text/plain"); //如果id以<remove>開頭 if (id.indexOf("<remove>")==0) { //根據(jù)“拖”過來的數(shù)據(jù),獲取被拖動的元素 let target=document.getElementById(id.substring(8)); //刪除被拖動的元素 dest.removeChild(target); } } //ondragover 被拖動的元素進(jìn)入本元素的范圍內(nèi)拖動時會不斷地觸發(fā)該事件 document.function(event){ //取消事件的默認(rèn)行為 return false; } //ondrop 其他元素被放到了本元素中時觸發(fā)該事件 document.function(event){ //取消事件的默認(rèn)行為 return false; } </script> </body> </html>
到這里實(shí)現(xiàn)拖放結(jié)束。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript條件判斷_動力節(jié)點(diǎn)Java學(xué)院整理
JavaScript使用if () { ... } else { ... }來進(jìn)行條件判斷。下通過語句代碼給大家詳細(xì)介紹js 條件判斷的基本知識,需要的的朋友參考下吧2017-06-06easyui-edatagrid.js實(shí)現(xiàn)回車鍵結(jié)束編輯功能的實(shí)例
下面小編就為大家?guī)硪黄猠asyui-edatagrid.js實(shí)現(xiàn)回車鍵結(jié)束編輯功能的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04