Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Javascript ja funktio kun ei klikata objektin päältä

sane [22.12.2007 22:17:07]

#

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ä?

tsuriga [23.12.2007 02:17:59]

#

http://www.theunnamedclan.org/code/inout.html (linkataan nyt omaan, vaikka samaan ratkaisuun päätyy tietysti se viimeinen hakutulos, sama W3Schoolissa)

Merri [23.12.2007 13:21:10]

#

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>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta