[Javascript] Cursor-Position ermitteln?

NudelMC

Grünschnabel
Hallo,

ich versuche gerade die Cursor-Position zu ermitteln.
Das klappt soweit auch ganz gut, allerdings habe ich ein kleines Problem...

Ich versuche bei Klick auf einen link ein div anzuzeigen, welches an der Stelle erscheinen soll wo der Cursor aktuell geklickt hat.

Nur wenn das div dann da ist, hüpft es bei jedem anderen click auf der website an diese stelle :(

Ich weiß eigentlicha uch woran es liegt
document.onclick=mousepos;

Allerdings weiß ich nicht wie ich es beheben soll, da bei jeder anderen Möglichkeit die ich probiert habe das event attribut nicht verfügbar oder undefiniert ist.

Ich wäre dankbar für Hilfe!

Code:
<script type="text/javascript">
            tooltip = null;
            function mousepos(e) {
	            x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
	            y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
	            if (tooltip != null) {
		            tooltip.style.left = (x + 5) + "px";
		            tooltip.style.top  = (y + 5) + "px";
	               }
            }

            function showtooltip(url) {
                // Deshalb hüpft das Ding
                document.onclick= mousepos;  
          
	            tooltip = document.getElementById("tooltip");
	            tooltip.style.display = "block";
    	        
	            imgDiv = document.getElementById("imgDiv");
	            imgDiv.innerHTML="<img src=" + url +" onclick=hidetooltip()>";
    	        
	            //getData("ajax/tooltip.aspx?id=" + id2, "tooltip");  
            }

            function hidetooltip() { tooltip.style.display = "none"; }
        </script>
 
Hi

Falls ich dich richtig verstanden habe, willst du das wenn das Objekt einmal aufgetaucht ist das es nicht mehr weiter auf das onclick Event reagiert?

Dazu kann ich dir mehrere Dinge empfehlen:
1. Globale Boolean Variable
2. Abfrage ob der style = block ist im mousepos
3. falls du Scriptatculous nutzt kannst du Event.observe(tooltip, "click", mousepos)
und Event.stopObserving(tooltip, "click", mousepos) machen.

MfG
 
Das ist mein aktueller Versuch, klappt leider auch nicht ;(
klick ist und bleibt wohl immer auf False auch wenn die hidetooltip function _nicht_ aufgerufen wird.

Muss auch mal dazu sagend as ich in javascript net so die leuchte bin :)

Hoffe auf weitere Hinweise / Tips und Ideen.

Danke

Code:
<script type="text/javascript">
        var klick = false;
        
        tooltip = null;
        document.onkeypress = Tastendruck;
        
        function Tastendruck (Ereignis) {
          if (!Ereignis)
            Ereignis = window.event;
            if (Ereignis.keyCode=="27"){
            hidetooltip();
            }
        }

        function mousepos(e) {
            x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
            y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
            if (tooltip != null) {
                tooltip.style.left = (x + 5) + "px";
                tooltip.style.top  = (y + 5) + "px";
               }
        }

        function showtooltip(url) {
            // Deshalb hüpft das Ding
            if (klick==false){
            alert(klick);
            klick=true;
            document.onclick= mousepos;  
            }
      
            tooltip = document.getElementById("tooltip");
            tooltip.style.display = "block";
            
            imgDiv = document.getElementById("imgDiv");
            imgDiv.innerHTML="<img src=" + url +" onclick=hidetooltip()>";
            
            //getData("ajax/tooltip.aspx?id=" + id2, "tooltip");  
        }
        
        function hidetooltip()
        {
            klick=false;
            tooltip.style.display = "none";
        }
 
Hi

Dachte da eher an sowas :

Code:
function mousepos(e) {
            if(!klick){
                x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
                y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
                if (tooltip != null) {
                    tooltip.style.left = (x + 5) + "px";
                    tooltip.style.top  = (y + 5) + "px";
                   }
                 klick=true;
             }
        }
und
Code:
function showtooltip(url) {
            // Deshalb hüpft das Ding
            if (klick==false){
                document.onclick= mousepos;  
            }
      
            tooltip = document.getElementById("tooltip");
            tooltip.style.display = "block";
            
            imgDiv = document.getElementById("imgDiv");
            imgDiv.innerHTML="<img src=" + url +" onclick=hidetooltip()>";
            
            //getData("ajax/tooltip.aspx?id=" + id2, "tooltip");  
        }

Gefällt mir persönlich zwar nicht, aber unter ie und ff funktioniert es.

Hoffe das bringt dich weiter.

Mfg
 

Neue Beiträge

Zurück