Hier meine testergebnisse.
Ich habe mit meinem ursprünglichen Code ein <img> zu behandeln versucht.
Das Verhalten zeigt sich wie folgt:
onmousedown initiert. Aber solange ich die Mouse drücke und sie bewege, bewegt sich das Bild nicht. erst wenn ich die Maus loslasse stottert das Bild nach.
Genau, und deshalb preventDefault und return false
gui.cat.onmousedown = function(evt){
// Dein Tipp
if(evt && evt.preventDefault) evt.preventDefault();
// kein Unterschied in der Wirkung mit oder ohne...
// evt.returnValue = false;
var offx = evt.clientX - gui.cat.offsetLeft;
var offy = evt.clientY - gui.cat.offsetTop;
document.onmousemove = function foo (evt){
gui.cat.style.left = evt.clientX - offx + "px";
gui.cat.style.top = evt.clientY - offy + "px";
}
hier:
if(evt.preventDefault) evt.preventDefault()
return false;
Das return false ist noch wichtig.
Übrigens ist dein Hinweis auf eine Umgebung mit Text hier nicht ganz schlüssig, weil das zu bewegende Objekt sowieso position fixed oder absolute haben muss.
Das Problem ist, wenn du kein return false hast, wird der Text markiert beim Draggen.
Struppi.