Ciao a tutti, non conosco molto javascript, ho un problema con uno script che ho modificato, in pratica trascinando un'immagine su un div l'immagine rimane l'immagine sul div e nell'input che ho chiamato codice mi appare il testo alternativo dell'immagine, il problema è che su explorer e chrome funzione mentre su firfoxe mi appare l'immagine nel div ma non il testo alternativo.
Questa è la parte della pagina visibile:
codice:
[img]immagini/1.gif[/img]
[img]immagini/2.gif[/img]
[img]immagini/3.gif[/img]
[img]immagini/4.gif[/img]
<div id="1"> Trascina qui le immagini </div>
<form method="post" name="primo" id="primo">
<input type="text" id="codice" name="codice">
</p>
</form>
Questo è lo script che ho usato, in rosso sono le 2 righe che ho aggiunto io:
codice:
<script>
$("img") //Indica all'utente quali elementi sono trascinabili cambiando il cursore del mouse
.css("cursor", "move") //Indica al browser gli elementi trascinabili e cose fare dei dati di questi elementi (punto 1 e 2)
.bind("dragstart", function(ev) { //con queste due righe di codice si salva una parte dei dati
var dt = ev.originalEvent.dataTransfer; dt.setData("Text", this.alt); return true; });
//Indica al browser su quali elementi puoi trascinare gli oggetti (punto 3)
$("div")
//dragenter dragleave dragover di solito sono usati per cambiare l'aspetto grafico .bind("dragenter", function (ev){ $(this).css("background-color", "b959fc").css("cursor", "copy");
return false; })
.bind("dragleave", function (ev){ $(this).css("background-color", "white");
return false; })
.bind("dragover", function (ev){ $(this).css("background-color", "#b959fc");
return false; })
//Indica cosa fare una volta avvenuto il drop (punto 4)
.bind("drop", function (ev){ $(this).css("background-color", "white");
//Impedisce al browser di selezionare il testo invece di trascinare gli elementi(per internet explorer 9)
if (ev.preventDefault) { ev.preventDefault(); }
//recupero i dati salvati in precedenza e li uso per modificare il contenuto del target
var tmp = ev.originalEvent.dataTransfer.getData("Text");
var tmp1= "[img]immagini/"+tmp+".gif[/img]";
this.innerHTML = tmp1;
primo.codice.value = tmp;
return false; });
</script>
Qualcuno sa dirmi dove sbaglio?