Skip to content

Instantly share code, notes, and snippets.

@plugn
Forked from anonymous/index.html
Created February 15, 2017 12:09
Show Gist options
  • Save plugn/3947f0153d47b253997517aaa47a04e4 to your computer and use it in GitHub Desktop.
Save plugn/3947f0153d47b253997517aaa47a04e4 to your computer and use it in GitHub Desktop.
JS Bin // source http://jsbin.com/vofowip
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<style id="jsbin-css">
#app [draggable=true] {
outline: 1px solid #eee;
}
</style>
</head>
<body>
<button onclick="initDnD();">&gt;&gt;</button>
<div id="app">
<ul>
<li>item01</li>
<li>item02</li>
<li>item03</li>
<li><span>groupA</span>
<ul>
<li>itemA1</li>
<li>itemA2</li>
<li>itemA3</li>
</ul>
</li>
<li>item04</li>
<li>item05</li>
<li><span>groupB</span>
<ul>
<li>itemB1</li>
<li>itemB2</li>
<li>itemB3</li>
</ul>
</li>
</ul>
</div>
<script id="jsbin-javascript">
function byId (id) {
return document.getElementById(id);
}
function byQS (qs) {
return document.querySelectorAll(qs);
}
function listFn (nodeList, fn, callback) {
return Array.prototype[fn].call(nodeList, callback)
}
var dragged;
function initDnD() {
var v = listFn(byQS('#app li'), 'forEach', function(li){
li.draggable = true;
//return li.tagName.toUpperCase()+li.innerText;
});
dragged = null;
var rootEl = document.querySelector('#app > ul');
rootEl.addEventListener('dragstart', onDragStart)
rootEl.addEventListener('dragover', onDragOver);
rootEl.addEventListener('dragenter', onDragEnter);
// console.log('vqweqw');
}
function onDragStart(e) {
dragged = e.target;
console.log('dragstart', e.target.innerText);
e.dataTransfer.setData('text/plain', e.target.innerText);
e.dataTransfer.effectAllowed = 'move';
}
function onDragOver(e) {
e.preventDefault();
// console.log('dragover', e.dataTransfer.types)
}
function onDragEnter(e) {
console.log('dragenter',
'target: ', e.target);
}
function onDrop(e) {
console.log('drop', e)
}
</script>
<script id="jsbin-source-css" type="text/css">#app [draggable=true] {
outline: 1px solid #eee;
}</script>
<script id="jsbin-source-javascript" type="text/javascript">
function byId (id) {
return document.getElementById(id);
}
function byQS (qs) {
return document.querySelectorAll(qs);
}
function listFn (nodeList, fn, callback) {
return Array.prototype[fn].call(nodeList, callback)
}
var dragged;
function initDnD() {
var v = listFn(byQS('#app li'), 'forEach', function(li){
li.draggable = true;
//return li.tagName.toUpperCase()+li.innerText;
});
dragged = null;
var rootEl = document.querySelector('#app > ul');
rootEl.addEventListener('dragstart', onDragStart)
rootEl.addEventListener('dragover', onDragOver);
rootEl.addEventListener('dragenter', onDragEnter);
// console.log('vqweqw');
}
function onDragStart(e) {
dragged = e.target;
console.log('dragstart', e.target.innerText);
e.dataTransfer.setData('text/plain', e.target.innerText);
e.dataTransfer.effectAllowed = 'move';
}
function onDragOver(e) {
e.preventDefault();
// console.log('dragover', e.dataTransfer.types)
}
function onDragEnter(e) {
console.log('dragenter',
'target: ', e.target);
}
function onDrop(e) {
console.log('drop', e)
}</script></body>
</html>
#app [draggable=true] {
outline: 1px solid #eee;
}
function byId (id) {
return document.getElementById(id);
}
function byQS (qs) {
return document.querySelectorAll(qs);
}
function listFn (nodeList, fn, callback) {
return Array.prototype[fn].call(nodeList, callback)
}
var dragged;
function initDnD() {
var v = listFn(byQS('#app li'), 'forEach', function(li){
li.draggable = true;
//return li.tagName.toUpperCase()+li.innerText;
});
dragged = null;
var rootEl = document.querySelector('#app > ul');
rootEl.addEventListener('dragstart', onDragStart)
rootEl.addEventListener('dragover', onDragOver);
rootEl.addEventListener('dragenter', onDragEnter);
// console.log('vqweqw');
}
function onDragStart(e) {
dragged = e.target;
console.log('dragstart', e.target.innerText);
e.dataTransfer.setData('text/plain', e.target.innerText);
e.dataTransfer.effectAllowed = 'move';
}
function onDragOver(e) {
e.preventDefault();
// console.log('dragover', e.dataTransfer.types)
}
function onDragEnter(e) {
console.log('dragenter',
'target: ', e.target);
}
function onDrop(e) {
console.log('drop', e)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment