Kevin Marks: onmousedown funktioniert nicht in Div-Container

Hi!

Ich habe vor einiger Zeit hier ein Thema eröffnet, wie ich eine Funktion erst dann aufrufen kann wenn man in einem Div-Container klickt (onmousedown). Leider finde ich das Thema nicht mehr, aber mir wurde gesagt das es mit document.getElementById("Containername").onmousedown = funktion; geht.
Leider geht das nicht, ich habe meine Scripts mehrmals überprüft ob es irgendwo einen Fehler gibt aber eine ganz einfache funktion (siehe unten) zeigt das dies nicht funktioniert.

Weiss jemand wie es doch klappen könnte?

Meine Testfunktion welche deutlich macht das dies nicht klappt:
<html>
<head>
<script type="text/javascript">
// document.onmousedown = test;
// oberes auskommentieren um zu sehen das die funktion klappt..und zwar überall

// unteres auskommentieren um zu sehen das die funktion nicht klappt..und zwar nirgends
// document.getElementById("cont").onmousedown = test;

function test() {
 alert("Text");
}
</script>
<style type="text/css">
div.des {
 position:absolute;
 left:15%;
 top:15%;
 width:50px;
 height:50px;
 background-color:#F00;
}
</style>
</head>
<body>
<div id="cont" class="des">Klicken</div>
</body>
</html>

  1. [latex]Mae  govannen![/latex]

    Meine Testfunktion welche deutlich macht das dies nicht klappt:
    <html>
    <head>
    <script type="text/javascript">
    // document.onmousedown = test;
    // oberes auskommentieren um zu sehen das die funktion klappt..und zwar überall

    // unteres auskommentieren um zu sehen das die funktion nicht klappt..und zwar nirgends
    // document.getElementById("cont").onmousedown = test;

    Logisch. Wenn das Javascript ausgeführt wird, existiert das Element "cont" noch nicht. Du mußt also die Zuweisung des Event-Handlers erst nach dem vollständigen Laden des Dokuments machen (In eine Funktion packen, die über window.onload ausgeführt wird) oder aber den Script-Block unterhalb des betreffenden Elements platzieren .

    Cü,

    Kai

    --
    A workaround for an avoidable problem often adds clutter and overhead to the program which
    could have been avoided by not creating the problem in the first place.(Garrett Smith/clj)
    Foren-Stylesheet Site Selfzeug JS-Lookup
    SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
  2. // unteres auskommentieren um zu sehen das die funktion nicht klappt..und zwar nirgends

    Was ein Zeichen dafür ist, das es einen Fehler gibt. Schau einfach mal in die Fehlerkonsole, vielleicht kommst du darauf, was hier falsch läuft.

    Struppi.

  3. Hi!

    Danke, es funktioniert jetzt prima.
    Aber ich hab noch ein Problem jetzt und zwar ist in dem Div-Container(1) ein weiterer Div-Container(2), der sollte jedoch nicht anklickbar sein. Kann ich den Div-Container(2) irgendwie aussperren sodass der onmousedown in dem Div-Container(1) überall klappt ausser in dem Div-Container(2)?

    1. [latex]Mae  govannen![/latex]

      Danke, es funktioniert jetzt prima.
      Aber ich hab noch ein Problem jetzt und zwar ist in dem Div-Container(1) ein weiterer Div-Container(2), der sollte jedoch nicht anklickbar sein. Kann ich den Div-Container(2) irgendwie aussperren sodass der onmousedown in dem Div-Container(1) überall klappt ausser in dem Div-Container(2)?

      Lies mal molilys Tutorial zum Thema Events, insbesondere die Kapitel 14-16 sollte dir bei deinem Problem weiterhelfen.

      Cü,

      Kai

      --
      A workaround for an avoidable problem often adds clutter and overhead to the program which
      could have been avoided by not creating the problem in the first place.(Garrett Smith/clj)
      Foren-Stylesheet Site Selfzeug JS-Lookup
      SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?