Data transfer types are not recognized in IE 10 & below
Another beautiful CodedHomes property.
Clear Drop Target
Drop Here
<div class="row">
<div class="col-sm-6">
<div id="content" class="push-down-top">
<img src="img/home.jpg" class="thumbnail img-responsive" />
<p class="h3">Another <span style="#ff0">beautiful</span> <a href="http://codedhomes.com">CodedHomes</a> property.</p>
</div>
</div>
<div class="col-sm-6">
<a id="clear" href="#" class="btn btn-mini">Clear Drop Target</a>
<div id="target" class="well push-down-top-sm"><h4>Drop Here</h4></div>
</div>
</div>
/* none */
var cancel = function(e) {
if (e.preventDefault) e.preventDefault();
if (e.stopPropagation) e.stopPropagation();
return false;
};
var dropped = function(e) {
cancel(e);
var target = this, content = '';
var types = e.dataTransfer.types;
if (types.length > 0) {
if (types[0] === 'Text') {
target.innerText = e.dataTransfer.getData('Text');
} else {
types.forEach(function(type) {
content = e.dataTransfer.getData(type);
var p = document.createElement('p');
p.innerHTML =
'<b>Type</b>: ' + type + '<br>' +
'<b>Content</b>:' + content;
target.appendChild(p);
});
}
}
target.classList.remove('over');
// If you want to clear all data from
// the dataTransfer object you
// can call:
//
// e.dataTransfer.clearData();
//
// or you can clear values based on conent type:
//
// e.dataTransfer.clearData('text/plain');
//
// where 'text/plain' can be
// substituted for any of the
// conent types where you want to
// remove the value.
};
var dragLeave = function(e) {
this.classList.remove('over');
};
var dragOver = function(e) {
cancel(e);
this.classList.add('over');
};
var target = document.getElementById('target');
target.addEventListener('drop', dropped, false);
target.addEventListener('dragenter', cancel, false);
target.addEventListener('dragover', dragOver, false);
target.addEventListener('dragleave', dragLeave, false);
var clearButton = document.getElementById('clear');
clearButton.addEventListener('click', function(e) {
e.preventDefault();
target.innerHTML = '';
});