Nick: Beschreiben ist eine Kunst

Beitrag lesen

Ich habe mehrere Male Beispiele gebracht wie ich es verwenden würde, oder näher nachgefragt, wie genau denn der Rat umzusetzen sei.

Inwiefern kommt das einem einfachen "funzt net" gleich?

Das Problem wurde beschrieben: die Mauszeigerposition wird nicht erkannt.
Wenn dann ein Lösungsvorschlag kam, den ich nicht verstanden habe, habe ich versucht ihn dennoch umzusetzen, wenn es mir nicht gelang, habe ich danach gefragt, wie es denn richtig umzusetzen sei. Und das ging immer weiter so.
Und dann wird mir auf einmal von irgendeinem Kerl doch tatsächlich als Antwort gegeben "es funktioniert, wenn du es richtig machst".

Ich bitte euch, wenn man da nicht ein wenig verwundert sein darf über die Qualität der Hilfe!
Wenn ich es denn nicht richtig mache, kann man mir denn nicht einfach Lösungsvorschläge geben, die auf meinen Code zugeschnitten sind?
Ich hatte sogar ausdrücklich danach gefragt, ob nicht der Event-Handler mit übergeben werden kann, während man andere Variablen mit überträgt, und dies alles in dem Tag des Elementes selbst gestartet wird.

Was hab ich da als Antwort bekommen "mach es nicht so" .... das hilft mir aber nicht, ich wollte nämlich wissen ob es geht, und wenn ja, wie!

Was soll ich denn mehr an dem Problem beschreiben als: "ich will die Mauszeigerposition auch in Firefox bekommen. Der hier dargestellte Code lässt dies nur in den anderen Browser zu. Wie kann es für den Firefox umgebaut werden, sodass aber weiter die Form des Codes vorhanden bleibt?"
Was ist denn DARAN bitteschön nur ein "funzt net" ? ? ? ?
Inwiefern soll ich das denn noch aufblähen mit Informationen, die euch dabei helfen mir zu helfen?
Und wenn ich dann ein umgebautes Script zeigte, wurde mir nur gesagt, dass es falsch sei. Na dankeschön!

Wenn ihr doch die Probleme lösen könnt, sofern man alles in kleinste Detail beschreibt, dann will ich das mal hier sehen:

<div id="c" onmousedown="start(event)"><br>x: <input value="x" id="ixc"><br><br>y: <input value="y" id="iyc"></div>  
<script type="text/javascript"> 
~~~javascript

start = function(event) {
if (!event) event = window.event;
var Element = event.target.id || event.srcElement.id
mausX = event.clientX - document.getElementById(Element).offsetLeft
mausY = event.clientY - document.getElementById(Element).offsetTop
document.getElementById(Element).style.zIndex = 2
document.getElementById(Element).onmousemove =  function() { move(event) }
document.getElementById(Element).onmouseup =  function() { stop() }
}
move = function(event) {
var Element = event.target.id || event.srcElement.id
document.getElementById(Element).style.top = event.clientY - mausY
document.getElementById(Element).style.left = event.clientX - mausX
document.getElementById("ix"+Element).value = event.clientX - mausX
document.getElementById("iy"+Element).value = event.clientY - mausY
}
stop = function() {
var Element = event.target.id || event.srcElement.id
document.getElementById(Element).style.zIndex = 1
document.getElementById(Element).onmousemove = null
document.getElementById(Element).onmouseup = null
}

`</script>`{:.language-html}  
  
Wie man sehen kann, wird über das onmousedown die Funktion "start" aufgerufen. Ich habe es mit dem Event-Handler probiert, es funktioniert auch in allen Browsern. Die Weiche habe ich ebenfalls eingebaut "if (!event) event = window.event;" jedoch scheint mein IE nichts damit anfangen zu können, die Input-Bereiche, die ja die Position des Divs in Pixel anzeigen soll verändert sich nicht. Ansonsten würde ja in "event.ClientX/Y" etwas richtiges ankommen, und somit das Value des Inputs verändert werden.  
Problem an der Stelle ist also: das IE will den Event-Handler nicht richtig erkennen, bzw diesen nicht durch "window.event" ersetzen, damit es im IE dann doch funktioniert.  
  
Im weiteren Verlauf wird die ID des Elementes in Element geschrieben (für die korrekte Zuweisung des richtigen Divs). Dann die momentane Mauszeigerposition zum Zeitpunkt des Mausklicks gespeichert, damit später wenn das Feld bewegt wird, der Mauszeiger in Relation zum Feld an der selben stelle stehen bleibt.  
Dann wird der z-Index geändert, damit das zu bewegende Element ganz oben steht (damit keine Probleme mit eigentlich darüberliegenden Elementen aufkommt).  
Und dann soll halt die Funktion "move" aufgerufen werden, sobald die Maus bei gedrückter Taste bewegt wird.  
In der Funktion werden halt die unterschiedlichen styles je nach Mauszeigerposition verändert. Ist ja selbsterklärend was da vorgeht in dem Script. Nicht das Komplexeste.  
Problem, welches jetzt aber aufkommt ist, dass sich das Feld nicht bewegt.  
Eigentlich läuft ja die Funktion "move" solange ab, wie ich die Maus gedrückt halte. Aber obwohl ich die Maus bewege, verändert sich die Position nicht. Ich bin mir aber nicht sicher woran genau das liegen könnte. (Deswegen frage ich ja auch hier -.-)  
Das Value des Inputs kommt richtig aus, also funktioniert ja "document.getElementById("ix"+Element).value = event.clientX - mausX" dieser Teil. Aber wenn die Maus bewegt wird, verändert sich anscheinend das "event.clientX" nicht, oder etwas stimmt mit dem onmousemove nicht, bzw mit dem onmousedown, da ja zumindest einmal das alles durchlaufen wird, ansonsten würde ja das Input nicht die korrekte Position des Divs anzeigen.  
  
  
War das jetzt genug Problembeschreibung? Weil wenn nicht, verstehe ich euch echt nicht. Wie tief soll man denn ein Problem beschreiben? Soll man sein Script bis ins kleinste Detail beschreiben, oder wie?! Ich dachte sowas wäre, zumindest bei dem einfachen Zeugs was ich da geschrieben habe, sofort erkenntlich!  
  
Ich habe jetzt meiner Meinung nach sehr genau und eindeutig, die Funktion und das Problem erklärt.  
Könnt ihr mir JETZT helfen?