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:
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: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 { } },
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?

Rispondi quotando


