2010-07-27 13 views
9

Gibt es eine Möglichkeit in JavaScript, Ereignisse an Elemente weiterzugeben, die durch eine andere verdeckt sind? Weil ich ein Element mit position: absolute habe, das Elemente verdeckt, die keine Elternelemente davon sind, aber ich möchte, dass Ereignisse durch Klicken, MouseMove und MouseOut durch dieses Element gehen. Die Lösung kann Mozilla Firefox spezifisch sein, da ich sie in einem Firefox Add-On verwenden werde.Mausereignisse an verdeckte Elemente weitergeben

Antwort

17

Vielleicht. Es wird zum Beispiel auf der Twitter-Homepage verwendet, so dass Sie auf den Text in den "Trendthemen" auch klicken können, wenn es durch Ausblenden von Grafiken überlagert wird.

+0

Vielen Dank. Das habe ich gesucht. – panzi

1

Sie können getElementsByTagName ("*") verwenden, um alle Elemente auf der Seite abzurufen. Mit einer find-world-position-Funktion können Sie die Position eines Elements relativ zur oberen linken Ecke der Seite ermitteln. Sie könnten jetzt offsetWidth, offsetHeight und die Mausposition [browser specific, lol] verwenden, um zu prüfen, ob sich der Cursor über Ihrem Element befindet.

Wenn der Cursor über Ihrem Element ist, feuern Sie das Ereignis ab.

Die obige Funktion sollte für die CSS-Eigenschaft angebracht werden pointer-events:none; ist, was Sie suchen, um window.onmousedown/onmouseup/onmousemove/was auch immer

+0

Ja, ich hoffte, dass es etwas einfacher und schneller geben würde. Vielleicht wäre es besser, eine unsichtbare '' mit einer zugehörigen Bildkarte vor dem '' (das ist das verdunkelnde Element) zu setzen. Hmmm. – panzi

+0

Wie können Sie das ursprüngliche Ereignis im Browser auslösen ??? Beispiel, mit jQuery können Sie nur jQuery-Handler auslösen ... nicht original dom-Ereignisse – arty

Verwandte Themen