brockerdocker: mit onclick div-Box verschieben

Beitrag lesen

Hallo,
ich will durch klicken auf ein Bild/span-Bereich oder auf einen Link (ist egal was) eine div-Box an der Position des Mauszeigers beim klicken positionieren.
Ich habe schon einiges ausprobiert und habe dieses funktionierende Beispiel zusammengebastelt, das allerdings nicht genau so läuft wie ich will:

  
<span id="sonst">Dies ist ein Test</span>  
<script type="text/javascript">  
[code lang=javascript]  
document.getElementById('sonst').onclick = click;  
function click(event)  
{  
 if( ! event && window.event ) event = window.event;  
 document.getElementById("extra").style.left = event.clientX+'px';  
 document.getElementById("extra").style.top = event.clientY+'px';  
}  

~~~</script>  
<div id="extra" style="position: absolute; left: 20px; top: 100px; background-color: red; width: 400px; height: 40px;">  
</div>  
[/code]  
  
Mein Problem ist, dass mit  
  
`document.getElementById('sonst').onclick = click; `{:.language-javascript}  
  
der onclick-Aufruf nicht direkt als Attribut im span-Element, sondern im JavaScript-Bereich steht.  
Da ich mehrere Span-Elemente haben möchte, würde ich dann mit  
  
~~~html
<span id="sonst" onclick='click();'>Dies ist ein Test</span>  

die div-Box immer bei dem span-Element positionieren auf das geklickt wird. Dies ist ja mit dem 1. Beispiel nicht möglich, da immer mittels der id nur das erste span-Element überwacht wird.
Leider funktioniert die 2. Methode aber nicht. Da ich nicht verstehe wo der Fehler liegt, möchte ich euch um Hilfe bitten.
OK, das wars.
Danke schonmal, brockerdocker

Hier nochmal das 2. Beispiel:

  
<span id="sonst" onclick="click();">Dies ist ein Test</span>  
<script type="text/javascript">  
[code lang=javascript]  
function click(event)  
{  
 if( ! event && window.event ) event = window.event;  
 document.getElementById("extra").style.left = event.clientX+'px';  
 document.getElementById("extra").style.top = event.clientY+'px';  
}  

</script>

<div id="extra" style="position: absolute; left: 20px; top: 100px; background-color: red; width: 400px; height: 40px;">
</div>
[/code]