Andreas Dölling: Problem mit Buttonverhalten

Beitrag lesen

Hallo,

das Problem ist, daß Du, wenn Du auf ein Bild klickst, die Maustaste gedrückt hältst und dann die Maus bewegst, den DRAG-Event aktivierst, d.h. Du ziehst das Bild.
Und dieser DRAG-Event wird solange gefeuert, bis Du die Maustaste losläßt, und solange gibt es keinen MOUSEOUT-Event (da Du ja nach der drag-Logik mit der Maus das Bild festhältst und ziehst).
Ergo: Du mußt den DRAG-Event unterdrücken.

Habe Dir mal eine kleine Seite zum Testen gebaut. Dort klappt alles so, wie Du es möchtest (beachte das ondrag="return false;"):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function showEventType(eventObj) {
    var outputObj = document.getElementById("output");
 outputObj.innerHTML = 'event: '+eventObj.type;
}
</script>

<style type="text/css">
#test { height:100px; width:300px; background-color:lime; margin-top:40px; }
#output { height:40px; width:300px; background-color:#efefef; border:1px solid #333; margin-top:40px; }
</style>
</head>

<body>
<img src="testbild.gif" onmousedown="showEventType(event);" onmouseout="showEventType(event);" onmouseup="showEventType(event);" onclick='showEventType(event);'" ondrag="return false;" />
<div id="test" onmousedown="showEventType(event);" onmouseout="showEventType(event);" onmouseup="showEventType(event);" onclick='showEventType(event);'">Testelement</div>
<div id="output"></div>

</body>
</html>

Ciao,
Andreas