[html] view plain copy <!DOCTYPE HTML> <html> <head> <style type="text/css"> #div1, #div2 {float:left; width:100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;} </style> <script type="text/javascript"> function allowDrop(ev) { ev.preventDefault(); } var srcdiv = null; function drag(ev,divdom) { srcdiv=divdom; ev.dataTransfer.setData("text/html",divdom.innerHTML); } function drop(ev,divdom) { ev.preventDefault(); if(srcdiv != divdom){ srcdiv.innerHTML = divdom.innerHTML; divdom.innerHTML=ev.dataTransfer.getData("text/html"); } } </script> </head> <body> <div id="div1" ondrop="drop(event,this)" ondragover="allowDrop(event)" draggable="true" ondragstart="drag(event, this)"> <p>ni hao!</p> </div> <div id="div2" ondrop="drop(event,this)" ondragover="allowDrop(event)" draggable="true" ondragstart="drag(event, this)"> <p>Hello world!</p> </div> </body> </html>
上面是代碼,保存爲html,而後用瀏覽器打開,能夠查看效果。javascript
簡要說一下,上面的函數:css
ondrop: 拖到目的地放下以後要作的處理,這裏自定義drop(event,this)函數,互換兩個的innerHTMLhtml
ondragover:當拖動連接等有默認事件的元素時,要在ondragover事件中用ev.preventDefault()阻止默認事件。不然drop事件不會觸發。java
draggable:容許拖動瀏覽器
ondragstart:選取拖動目標要作的處理,這裏保存拖動目標的innerHTML.dom