Java-Projekt ziehen
Anton
- java
Moin!
Also ich habe ein Java-Projekt.
In diesem lasse ich eine Anzahl von verschiedenen aus einer Datenbank gelesenen Texten (Items) durch HTML auf den Bildschirm erscheinen. Diese möchte ich durch ein simuliertes Drag&Drop besonderen Gruppen zuweißen können. Dabei wird dann mit Hilfe von Ajax die Datenbank auf den neuesten Stand gebracht.
Wenn ich nun auf ein Item Klicke, wird eine Funktion(getDragMouse) gestartet, die nach 30ms aufrecht erhalten die Funktion setCopyMouse() startet.
out.println("function getDragMouse(itemID) {");
out.println("mouseOverItemID=itemID");
out.println("window.setTimeout("setCopyMouse();", 300);");
out.println("}");
out.println("function setCopyMouse() {");
out.println("if (dragMouse==true) {");
out.println("document.body.className='bodyMauszeigerItem';");
out.println("}");
out.println("else {");
out.println("document.body.className='bodyMauszeigerNormal';");
out.println("mouseOverItemID='-1'");
out.println("}");
out.println("}");
setCopyMouse verändert die Klasse des Bodys.
css-Klasse:
out.println(".bodyMauszeigerNormal");
out.println("{");
out.println("cursor: url('html/cursors/IMS-Cursor.cur'), help;}");
out.println(".bodyMauszeigerItem");
out.println("{");
out.println("cursor: url('html/cursors/IMS-Cursor-Item.cur'), help;}");
Gleichzeitig wird beim loslassen des Mauszeigers eine Mouseout-Funktion im Body gestartet, die das ganze wieder auf den normalen Mauszeiger zurück wurstelt:
out.println("<body onmouseup="setDragMouse(false); body.style.cursor='html/cursors/IMS-Cursor.cur';">");
Leider funktioniert dieses verändern der Klasse nur einmal, obwohl die Funktion immer wieder richtig ausgeführt wird. getestet mit Alert)
Wenn ich den cursor ohne die Klasse verändere (document.body.style.cursor='html/cursors/IMS-Cursor.cur'), dann klappt das einwandfrei, leider hat aber FireFox ein Problem mit Custom-Cursors, wenn man diesen keine Alternative zuweißt. Mit einem einfachen:
out.println("document.body.style.cursor="('html/cursors/IMS-Cursor.cur'), help;"");
wars aber nicht getan.
Ich habe nun folgende Probleme/Fragen:
Entweder ich brauche einen richtig formatierten document.body.style.cursor-Befehl mit einem Standard-Ausweichmauszeiger, damit die ganze Sache im FireFox funktioniert.
Oder eine Lösung für das Problem, dass das verändern der Body-Klasse nur einmal richtig funktioniert, obwohl die selben Funktionen aufgerufen werden und funktionieren.
Danke schonmal im Voraus für die Ideen.
Ok nun funktionierts.
Ich bin mir zwar nicht sicher, aber ich glaube die ganze Geschichte hatte ein Problem damit, dass die Body-Klasse nicht von anfang an eine Klasse zugewießen bekommen hatte.
Hab zwar gedacht, ich hatte das damit auch schon probiert, aber aufeinmal ging es.