[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