Drag and Drop per Mousedown

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Drag and Drop per Mousedown

    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
    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&uuml;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>
    Und hier der Javascriptteil

    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;

  • #2
    Hi,

    mach es doch einfach so:

    jQuery UI - Draggable Demos & Documentation

    mfg streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      Ich will aber weiter nach dem Buch gehen wenn du verstehst.

      Es wird für einen der es gut kann mit Sicherheit kein Thema sein das anzupassen. Aber ich bin schon zig mal in den letzten Stunden gescheitert.

      Bitte helft mir auf die Sprünge.

      Kommentar


      • #4
        Ok, ist wirklich nicht schwer. Schau mal hier: JavaScript: Drag and Drop ganz einfaches Beispiel mit Drag & Drop. Wenn Du das verstanden hast, weißt Du auch, was Du anpassen musst!

        mfg streuner
        Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
        der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

        "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

        Kommentar

        Lädt...
        X