onmousedown funktioniert nicht in Div-Container
Kevin Marks
- javascript
0 Kai3450 Struppi0 Kevin Marks0 Kai345
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>
[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
// 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.
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)?
[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