88 lines
2.0 KiB
JavaScript
88 lines
2.0 KiB
JavaScript
/********************************************************************\
|
|
|
|
Name: dnd.js
|
|
Created by: Stefan Ritt
|
|
|
|
Contents: JavaScript code for Drag & Drop interface
|
|
|
|
\********************************************************************/
|
|
|
|
function XMLHttpRequestGeneric()
|
|
{
|
|
var request;
|
|
try {
|
|
request = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
|
|
}
|
|
catch (e) {
|
|
try {
|
|
request = new ActiveXObject('Msxml2.XMLHTTP'); // Internet Explorer
|
|
}
|
|
catch (e) {
|
|
try {
|
|
request = new ActiveXObject('Microsoft.XMLHTTP');
|
|
}
|
|
catch (e) {
|
|
alert('Your browser does not support AJAX!');
|
|
return undefined;
|
|
}
|
|
}
|
|
}
|
|
return request;
|
|
}
|
|
|
|
// getElementById
|
|
function $id(id) {
|
|
return document.getElementById(id);
|
|
}
|
|
|
|
function drag(e)
|
|
{
|
|
console.log('drag');
|
|
}
|
|
|
|
function dragover(e)
|
|
{
|
|
e.dataTransfer.dropEffect = 'copy';
|
|
e.preventDefault();
|
|
}
|
|
|
|
function dragenter(e)
|
|
{
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
$id('holder').style.border = '6px dashed #0c0';
|
|
console.log('dragenter');
|
|
}
|
|
|
|
function dragleave(e)
|
|
{
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
$id('holder').style.border = '6px dashed #ccc';
|
|
console.log('dragleave');
|
|
}
|
|
|
|
function drop(e)
|
|
{
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
console.log('drop');
|
|
}
|
|
|
|
function dndInit()
|
|
{
|
|
document.body.addEventListener('dragover', function(e) {
|
|
e.preventDefault();
|
|
});
|
|
document.body.addEventListener('drop', function(e) {
|
|
e.preventDefault();
|
|
});
|
|
|
|
d = $id('holder');
|
|
d.addEventListener('drag', drag);
|
|
d.addEventListener('dragover', dragover);
|
|
d.addEventListener('dragenter', dragenter);
|
|
d.addEventListener('dragleave', dragleave);
|
|
d.addEventListener('drop', drop);
|
|
}
|