Hei!
Tarkoituksenani on suorittaa funktio hiirellä klikatessa, kun hiiren kohdistin ei ole tietyn elementin päällä. Olen ajatellut käyttää bodyn onclick metodia, mutta pystyykö tätä suorittamaan muuten?
Tuohonhan sitten tarvitsisi elementit ja niiden koordinaatit, sekä hiiren korkeuden ja koordinaatit. Elementin koordinaatit ymmärtääkseni saa yksinkertaisesti element.offsetLeft ja element.offsetWidth metodien avulla, mutta hiiren koordinaatit aiheuttavat päänvaivaa. Eli miten saisin hiiren x ja y koordinaatit selville javascriptillä?
http://www.theunnamedclan.org/code/inout.html (linkataan nyt omaan, vaikka samaan ratkaisuun päätyy tietysti se viimeinen hakutulos, sama W3Schoolissa)
Selvityksenä: JavaScriptistä löytyy sellainen ominaisuus kuin bubbling (kupliminen - tai ainakin muistaakseni se kulki tällä nimityksellä). Kun klikkaat jotakin elementtiä, viesti siitä tulee ensin sille elementille, mutta se jatkaa matkaa eteenpäin aina dokumentin juurielementtiin asti. Tämän ansiosta voit document.body.onclick -eventissä nähdä, mitä elementtiä on klikattu, koska viittaus kyseiseen elementtiin kulkee mukana.
Tässä esimerkki siitä, miten polun voi selvittää:
<html><head> <title>Event-testi</title> <script type="text/javascript"> window.onload = function() { document.body.onclick = function(e) { if(!e) var e = window.event; if(e.target) { var target = e.target; } else if(e.srcElement) { var target = e.srcElement; } if (target.nodeType == 3) { var target = target.parentNode; } while (target != document.body && target.parentNode ) { target = target.parentNode; alert(target.innerHTML); } } } </script> </head><body> <div><p><b><i>Moi!</i></b></p></div> </body></html>
Aihe on jo aika vanha, joten et voi enää vastata siihen.