Hey Leute. Ich bin schon seit einigen Stunden dabei etwas mehr über Javascript zu lernen. Ich habe ein super Buch (Javascript und Ajax Das Praxisbuch für Web-Entwickler) nach dem ich meine Übungen mache. Nur bin ich gearde dabei eine Drag and Drop Anwendung zu schreiben ( auch nach dem Buch ) aber was mir an der Art und weise des Moves nicht mag ist, dass man das Objekt nur einmal klickt und mann es dann verschiben muss OHNE die Maustaste gedrückt zu halten. Da steht zwas Mousedown, aber das geht nicht mit Mousedown. Ich wüsste nun gerne was ich ändern muss, dass es per Mousedown UND Mousemove funktioniert. Denn beides zusammen bekomme ich nicht hin, so soll es aber sein. Danke im Vorraus. =)
Hier die HTML-Datei
Und hier der Javascriptteil
Hier die HTML-Datei
HTML-Code:
<html> <head> </head> <body> <script type="text/javascript" src="draganddrop.js"></script> <table style="width:100%;"> <tr> <td colspan="2" style="vertical-align:top;"> Bücher bestellen </td> <td id="korb" rowspan="3" style="border:1px solid black;width:300px;height:300px;vertical-align:top;"> <b> Warenkorb </b> Greifen Sie das Produkt und ziehen Sie es einfach hier in den Warenkorb <br /> </td> </tr> <tr> <td> <span id="buch1" style="cursor:hand;"> <img src="produkt1.jpg" alt="Buch1" style="height:80px;width:80px;border:1px solid black;"> </span> </td> <td> <span id="buch2" style="cursor:hand;"> <img src="produkt2.jpg" alt="Buch2" style="height:80px;width:80px;border:1px solid black;"> </span> </td> </tr> <tr> <td> <span id="buch3" style="cursor:hand;"> <img src="produkt1.jpg" alt="Buch3" style="height:80px;width:80px;border:1px solid black;"> </span> </td> <td> <span id="buch4" style="cursor:hand;"> <img src="produkt2.jpg" alt="Buch4" style="height:80px;width:80px;border:1px solid black;"> </span> </td> </tr> </body> </html>
HTML-Code:
var dragobj = null; function dodrag(e) { //das Event für Internet Explorer und Firefox vorbereiten if(window.event){o = window.event.srcElement;} else{o = e.target}; if(!o){return} // anderer Browser ? //Schauen ob der Drag über unserem Buch passiert ist, dazu //das Elternelemtn und dessen Eletern usw. durchsuchen while(0 != null && (!o.id || o.id.substr(0,4) != 'buch' )) { if(o.parentNode){o = o.parentNode;} else { o = null; break; //Beim Fenster angekommen ohne etwas zu finden } } if(o != null && o.id && o.id.substr(0,4) == 'buch') { dragobj = o; } else { dragobj = null; } } document.onmousedown = dodrag; function domove(e) { if(dragobj == null){return;} //kein Drag, auch kein Move //das Event für Internetexplorer und Firefox vorbereiten if(window.event){e = window.event;} if(!e){return} //anderer Browser //x und y an die Browser anpassen x=0; y=0; if(e.clientX){x = e.clientX; y = e.clientY;} if(e.offsetLeft){x = e.offsetLeft; y = e.offsetTop;} if(e.pageX){x = e.pageX; y = e.pageY;} // und das Object verschieben (neue Position) dragobj.style.position = 'absolute' ; dragobj.style.left = (x+10)+'px'; dragobj.style.top = (y+10)+'px'; return false; } document.onmousemove = domove;
Kommentar