mikethet: Mausposition undefined

Hallo leute,

Habe ein absolut-positioniertes Div welche ich ein Onclick-Event zugefügt habe.

Beim onclick wird folgende Funktion aufgerufen:

  
function ClickCorrectOrder(e){  
					var MausPositionTop = e.offsetY;  
					var MausPositionLeft = e.offsetX;  
					alert(e);  
					  
			}  

Das Alert ist rein zur Überprüfung.

Wenn die das Div angeklickt wird, soll die Mausposition relative zur linken oberen Ecke des Elements, weches das Event ausgelöst hat, ermittelt werden.

Also die Mausposition relativ zum DIV.

Allerdings zeigt er mir ständig undefined als Wert an. Sprich anscheinend wird gar nicht erst ein Wert an die Variablen übergeben.

Hoffe ihr könnt mir helfen.

LG Mike

    1. Hi,
      ~dave

      Hi, dave.

      Das MouseEvent erkennt er bei mir auch. Also das Objekt e ist vorhanden.

      Allerdings sind keine Werte für die Mausposition in den Variablen gespeichert. auch die direkt alert ausgabe von (e.offsetX); z.B undefined und ich verstehe nicht warum.

      LG Mike

      1. Hi,

        nicht nachvollziehbar.

        Es macht niemandem etwas aus wenn du Neuling bist. Aber es ist wirklich nervig wenn Fragen gestellt werden, die nicht nachvollziehbar sind.
        Ich bitte dich, das nächste mal wenn du eine Frage hast, ein Code-Beispiel mitzuliefern welches ausführbar ist und den Fehler zeigt.
        http://jsfiddle.net eignet sich hierfür hervoragend, solange es nur HTML, CSS und Javascript betrifft.

        Ich kann dir nicht sagen wo dein Fehler liegt, am Dreizeiler den du gezeigt hast liegt es nicht.

        ~dave

        1. Hi,
          Es macht niemandem etwas aus wenn du Neuling bist. Aber es ist wirklich nervig wenn Fragen gestellt werden, die nicht nachvollziehbar sind.
          Ich bitte dich, das nächste mal wenn du eine Frage hast, ein Code-Beispiel mitzuliefern welches ausführbar ist und den Fehler zeigt.
          ~dave

          Hallo,

          Das weiß ich, und mir macht es ja auch nichts aus Neuling zu sein! Ich weiß nicht wie du darauf kommst.

          Ich habe eigentlich, meiner Meinung nach, alles an relevanten Code gepostet. Das einzige was noch fehlt ist: document.getElementById("id").onclick = die oben genannte Funktion.

          Aber da der Fehler hier nirgendst liegt, wird er wohl woanders im Code liegen müssen.

          Aber okay, werde versuchen, dass morgen als direktes Code Beispiel zu senden!

          LG Mike

          1. Hi,

            wie JürgenB festgestellt hat kennt der Firefox offsetX/Y nicht.

            Benutzt du nicht den Firefox?

            Es ist generell auch für einen selbst bei der Fehlersuche hilfreich den Fehler in einem möglichst kleinen Beispiel-Code zu reproduzieren. So weiß man dann zumindest sicher welcher Teil nicht das tut, was man erwartet hatte.

            ~dave

            1. Hi,

              wie JürgenB festgestellt hat kennt der Firefox offsetX/Y nicht.

              Hallo Jürgen Hallo Dave,

              das war der Fehler. Ich wusste, dass die Ausgangspositionen (linke obere Ecke) von den einzelnen Browsern jeweils anders interpretiert werden, aber das Mozilla das nicht versteht, eben nicht.

              Habs jetzt grad im Chrome getestet und da funktioniert es.

              Danke euch.

              LG Mike

      2. Hallo mikethet,

        »»... (e.offsetX)

        funktioniert nicht im FF, versuch mal layerX, oder besser noch beides:

          
            var mouse_pos = function(evt)  
            {  
              var pos = {x:0,y:0};  
              if(!evt) evt = window.event; // nicht alle Browser übergeben evt  
              if (evt.offsetX) {     // Opera, IE  
                pos.x = evt.offsetX; //pageX;  
                pos.y = evt.offsetY; //pageY;  
              }  
              else if (evt.layerX) {     // MOZ  
                pos.x = evt.layerX; //pageX;  
                pos.y = evt.layerY; //pageY;  
              }  
              return pos;  
            }  
        
        

        Gruß, Jürgen

        1. [code lang=javascript]
              var mouse_pos = function(evt)
              {
                var pos = {x:0,y:0};

          Ach, eine Frage hätte ich noch an Jürgen.

          Erstellt du hier ein Array mit dem Namen pos?

          Bzw. Ist das nicht die JSON-Schreibweise.
          Habe immer zwei Variablen genommen, aber so zu arbeiten ist doch sinnvoller.

          LG Mike

          1. Hallo,

            var pos = {x:0,y:0};
            Erstellt du hier ein Array mit dem Namen pos?

            nein, kein Array, sondern ein Object. Deswegen zählt Jürgen ja auch nicht nur die Werte auf, sondern gibt den Feldern auch Namen.
            Ein Array würde man mit eckigen Klammern und ohne Feldnamen notieren:

            var a = [0, 4, 12, 15];

            Bzw. Ist das nicht die JSON-Schreibweise.

            Andersrum: JSON bedient sich der Javascript-Syntax zur Deklaration komplexer Datenstrukturen.

            Habe immer zwei Variablen genommen, aber so zu arbeiten ist doch sinnvoller.

            Ja. Zusammenfassen, was zusammengehört.

            Ciao,
             Martin

            --
            Fettflecke werden wieder wie neu, wenn man sie regelmäßig mit etwas Butter einschmiert.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
          2. Hallo mikethet,

            var pos = {x:0,y:0};

            das ist ein Objekt. Da Funktionen nur eine Variable zurückgeben können, fasse ich die Werte x und y im Objekt pos zusammen. Die Kurzschreibweise legt das Objekt pos an, gibt ihm die Elemente x und y und initialisiert diese mit dem Wert 0.

            Gruß, Jürgen