Salve, ho realizzato 1 applicazione che fa largo uso del Drag&Drop solo che mi da qualche problema su safari (soprattutto a livello di drop).
Ecco un pezzetto di codice di esempio:
codice:
prepareDrag:function () {
if (Modernizr.draganddrop) {
var dragged = $SHS.j('a');
$SHS.j.each(dragged, function (index, value) {
value.addEventListener('dragstart', function (e) {
try {
var img = $SHS.j(this).find('img');
if ((img[0].nodeName).toUpperCase() == 'IMG') {
var commandData = img[0].src + '|' + value.href;
//Do Stuff
} else throw 'Non valido';
} catch (err) {
//Errore
}
}, false);
value.addEventListener('dragend', function (e) {
//Do Stuff
}, false);
});
}
},
prepareDrop:function () {
if (Modernizr.draganddrop) {
var dropper = document.getElementById('dropArea');
dropper.addEventListener('dragenter', function (e) {
$SHS.j("#dropArea").addClass('drop-over');
}, false);
dropper.addEventListener('drop', function (e) {
e.stopPropagation();
e.preventDefault();
$SHS.j("#dropArea").removeClass('drop-over');
//Do stuff
}, false);
dropper.addEventListener('dragover', function (e) {
e.stopPropagation();
if (e.preventDefault) {
e.preventDefault();
}
$SHS.j("#dropArea").addClass('drop-over');
}, false);
dropper.addEventListener('dragleave', function (e) {
$SHS.j("#dropArea").removeClass('drop-over');
}, false);
} else {
}
},
Il mio obiettivo è permettere il trascinamento di tutti i tag <a> che contengono un tag <img> (tutte le immagini con un link per capirci). L'app funziona a dovere su FF/Chrome/IE ma da questo problema con safari:
Quando inizio a trascinare un oggetto e lo porto sull'area 'sensibile', questa risponde a dovere (diventando tratteggiata), quindi direi che safari riconosce che sto facendo il D&D.. ma quando rilascio l'oggetto non succede nulla.
Avete dei consigli?