Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
JavaScript Problem bei event.handler
07.04.2007, 18:06
Beitrag: #1
JavaScript Problem bei event.handler
Guten Tag Webhilfe-Community,
nach wenigen Minuten umschauen war ich mir sicher das ich mich mit meinem Problem an euch wenden kann.

Ich schreibe z.Z. ein kleines Projekt für ein MyBB-Forum in JavaScript, also nichts großes. Es läuft ausschließlich in JS und beansprucht keine Datenbankabfragen oder ähnliche PHP-Anwendungen.

Nun ist es ein Teil dieses Scripts, beim Klicken eines <p>-Tags ein zuvor verstecktes (wahlweise display:none) <table> sichtbar zu machen (ist weiterhin kein Problem) und diesen relativ zu den Mousekoordinaten zu postionieren (position:absolute)

Nun kommt mein eigentliches Problem; da ich ja die Mousekoordinaten möchte, verwende ich das event.clientX/Y, dieses erwartet natürlich für das event ein Ereigniss. Sofern ich einen globalen event handler "onclick" definiere bekomme ich mit window.event.clientX/Y die Mouseposition zurückgeliefert.
Sofern ich dies jedoch mit dem <p onClick> mache bekomme ich lediglich ein Fehler angezeigt, dass ein window.event nicht existiere.

Daher meine Frage: wie muss ich dies definieren, das ich nach dem Klick auf das <p>-Element die Mausposition geliefert bekomme?
Sofern dieses Problem gelöst wird hätte ich noch eine weitere Frage, die sich aber schon aus der Antwort von diesem Problem ableiten lassen könnte.

Ich freue mich auf jegweilige Hilfe,
mfg,
fakerlol
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.04.2007, 19:03
Beitrag: #2
RE: JavaScript Problem bei event.handler
Also ich hatte mal ein ähnliches Problem und bin mit Hilfe dieses Artikels zur Lösung gekommen. Vielleicht hilft er dir jah weiter.

http://aktuell.de.selfhtml.org/artikel/d...aganddrop/

[Bild: linkbanner.jpg]

Krebs durch Lepra geheilt: Tumor fiel ab.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.04.2007, 20:41
Beitrag: #3
RE: JavaScript Problem bei event.handler
ich habe mir den quelltext genau angeschaut und versucht einige tests zu machen, jedoch kommt es auf das gleiche hinaus;
sofern es mit einem globalen eventhandler wie dem document.mousemove gemacht wird habe ich auch keine probleme, da als event selbiges zurückgegeben werden kann, so kann man durch window.event.clientX oder durch ereignis.clientX (ereignis als parameter zurückgegeben von document.onmousemove) die Mouseposition ermitteln.
Jedoch ist in meinem Fall folgende Anordnung maßgebend:
Code:
<p onClick="test()">Test-Text</p>
die funktion test() soll nun die Position des Mousecursors ermitteln, es hört sich alles einfach an, aber seitdem es in einer PHP-Site, genauer dem Header eines MyBB-Forums ausgeführt wird, bekomm ich andauernd diese Probleme.

Ich möchte nämlich erreichen das ich diese onClick="test()" später in jedes erdenklich Tag einsetzen kann, ein <p>-Tag ist nicht dringend erforderlich.
Ich komme aber nicht dahinter was nun genau das Ereigniss ist, welches das clientX/Y erwartet; bei nem globalen event.handler ist es selbsterklärend, das ein globaler event zurückgegeben wird und das clientX einen Bezugspunkt hat, das onclick in einem html-tag jedoch reicht nicht aus, um diesen Schlüssel-Event auszulösen...

Ich bin wirklich ratlos, dabei habe ich schon soviele Projekte in JS realisiert die das gleiche tun mussten, und erst in einer PHP-Site bekam ich nun diese Probleme, ich hoffe jemand weiß weiter :/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.04.2007, 21:15
Beitrag: #4
RE: JavaScript Problem bei event.handler
Willst du es so? Hab mal das Skript aus diesem Artikel genommen und leicht verändert.

Du musst aber warten, bis der Ladevorgang der Seite (verzögert sich aufgrund der Werbung) abgeschlossen ist, da ansonsten das Skript nicht initialisiert wird. ^^

http://parabrain.pa.funpic.de/fakerlol/

[Bild: linkbanner.jpg]

Krebs durch Lepra geheilt: Tumor fiel ab.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.04.2007, 21:49 (Dieser Beitrag wurde zuletzt bearbeitet: 07.04.2007 21:53 von fakerlol.)
Beitrag: #5
RE: JavaScript Problem bei event.handler
Erst mal danke das du dir die Zeit nimmst mein Problem aufzugreifen.
Ich hatte keine Probleme mit dem Laden da ich Adblock Plus draufhabe und somit keine Werbung angezeigt wird xD

Nun zum quelltext; ich kann nach dieser Modifikation nachvollziehen wie es funktioniert, jedoch stört mich eine Tatsache; es ist wieder nur mit gobalen event.handler gelöst. Das bedeutet die Tabelle wird andauernd neu positioniert, wenn man irgendwo im Dokument draufklickt. Einzig wenn man auf das gewünschte Element klickt wird die Tabelle sichtbar. Dies ist in der Weise ineffizient, da die Tabelle auf die Weise die ganze Zeit bearbeitet wird.
Ich weiß es ist viel verlangt als newbie der grad in diesem Board aktiv wird, aber gibt es keine Möglichkeit es "direkt" zu lösen?

Ich meine nehmen wir uns mal den IE als Vorbild und vergessen wir mal das W3C;
man kann hier ganz einfach per onClick die Position durch window.event.x/y ermitteln, warum ist dies in FF nicht möglich? Fast alles, was im IE direkt ansteuerbar ist, wird im FF entweder garnicht oder nur durch umschreiben von mehreren Codezeilen möglich.
Gibt es denn im FF nicht auch eine Möglichkeit, wie man die Mouseposition erfahren kann, nachdem das entsprechende Element geklickt ist? Bisher wurde es ja so gelöst das nach jedem Klick global diese Ermittlung stattfand.

Ich freue mich auf jede neue Antwort und entschuldige mich schonmal das ich so viele Fragen um das gleiche Thema stelle Biggrin

/edit
als beispiel verwende ich diese Seite:
http://gg-fraction.de.vu
das rote, absolute positionierte <p>-Tag hat ein onclick-handler der eine funktion aufruft.
Diesen kann man im quelltext nachlesen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.04.2007, 19:30
Beitrag: #6
RE: JavaScript Problem bei event.handler
Ach so, du möchtest also, dass sich die Tabelle dann mit dem Mauszeiger bewegt? Hm, vielleicht überleg ich mir heut Abend nochmal was... ^^
Gib die Hoffnung nicht auf! Wink

@andere Board-Mitglieder: Was ist denn mit euch? *gg*

[Bild: linkbanner.jpg]

Krebs durch Lepra geheilt: Tumor fiel ab.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.04.2007, 20:21
Beitrag: #7
RE: JavaScript Problem bei event.handler
Soo..
guck mal hier:
http://webmatze.de/webdesign/javascript/tooltips.htm

Umgeschrieben für dich:
Code:
<style type="text/css">
.tooltip {
    position: absolute;
    display: none;
    background-color: #FFFFFF;
}
</style>
<script>
<!--
wmtt = null;
show = null;

document.onmousemove = updateWMTT;

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

function showWMTT(id) {
        if (show == null) { show = 1;}
       else { show = null; hideWMTT();}
    wmtt = document.getElementById(id);
    wmtt.style.display = "block"
}

function hideWMTT() {
    wmtt.style.display = "none";
}
//-->
</script>
<div class="tooltip" id="1">
    Dies ist unser erster Tooltip
</div>
<p onclick="showWMTT('1')">Unser Link</p><br><br>

Weiß nu net, obs auch so funkt...nen bissl umgeschrieben..

[Bild: blacksoul.jpg]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.04.2007, 20:31
Beitrag: #8
RE: JavaScript Problem bei event.handler
Im Endeffekt ist es das gleiche wie zuvor der Quellcode von Para.
Ich danke euch vielmals für eure Hilfe, ich habe nun gesehen wie ichs machen kann, ich habe mich auch in anderen Foren kundig gemacht und wie es aussieht bleibt mir nach dem W3C nur diese Methode es über nen globalen eventhandler laufen zu lassen.
Damit ist mein Problem fürs erste gelöst ^_^'
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.04.2007, 20:36
Beitrag: #9
RE: JavaScript Problem bei event.handler
Theoretisch dürfte das nicht der gleiche Code sein, da die Box auch bei einer Bewegung an der Maus hängen bleiben muesste, aber nja...

Da du dein Prob ja gelöst hast Smile

mfg

[Bild: blacksoul.jpg]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Anfänger Problem -> Content neben Menü / Copyright Nobody 1 284 17.07.2007 14:02
Letzter Beitrag: e-phy
  Problem - Fixierte CSS "Tabelle" Takedown 14 495 11.05.2007 12:14
Letzter Beitrag: Blacksoul
  Scrollbar-Problem mit zentrierter Tabelle timmiii 17 503 16.02.2007 21:02
Letzter Beitrag: timmiii
  3D Panoramen mit Javascript loewenzahn 3 120 12.11.2006 22:16
Letzter Beitrag: loewenzahn
  JavaScript-Skript mit Intervall S.o.T. 21 358 28.10.2006 10:37
Letzter Beitrag: Sam Fisher
  css Problem Blacksoul 33 1.962 27.01.2006 20:25
Letzter Beitrag: Blacksoul
  Problem mit cookie-code Trallala 5 615 07.04.2005 18:49
Letzter Beitrag: Trallala
  Problem mit Xhtml/CSS LordCrusader 5 363 26.03.2005 15:40
Letzter Beitrag: e-phy
  JavaScript tobinho91 3 305 16.08.2004 15:07
Letzter Beitrag: dino

Gehe zu:

KontaktWebhilfe.infoNach obenZum InhaltArchiv-ModusRSS-Synchronisation