captureEvents funktioniert nicht

deb_ugger

Erfahrenes Mitglied
Hallo!

Ich versuche gerade ein Script für ein Drop-Down-Menü zu schreiben das primär auf CSS basiert. Damit das Menü richtig ein-/ausgeblendet wird (onmousedown) sobald ich irgendwo anders im Browserfenster hinklicke (onfocusout), brauche ich eine Art Event-Überwachung. Sie soll laufend überprüfen, ob sich meine Maus gerade über dem ausgeklappten Menü befindet. Ich hab hier mal eine vereinfachte Version meines Scripts:

Code:
<html>
<head>
	<title>Unbenannt</title>
<style>
#user_availability {
	background-color: #ccc;
	position: absolute;
	left: 10px;
	top: 60px;
	width: 120px;
	height: 200px;
	cursor: pointer;
}
</style>
<script>
var obj = document.getElementById("user_availability");
obj.captureEvents(Event.MOUSEOVER);
obj.onmouseover = Ausgabe;

function Ausgabe(e) {
	alert("Capture Event funktioniert!");
}
</script>
</head>

<body>
<div name="user_availability" id="user_availability">status 2</div>
</body>
</html>

Irgendwie will diese Eventüberwachung nicht funktionieren (getestet in IE6). Braucht man für IE was anderes? Danke für die Hilfe!

mfg,
debugger
 
Zuletzt bearbeitet:
Im IE reicht obj.onmouseover = Ausgabe;....das muss im Quelltext allerdings hinter dem betreffenden Objekt stehen, damit dieses auch bekannt ist, wenn drauf zugegriffen wird.
 
hm. also ganz versteh ich das noch nicht. also ich hab da ein element. sagen wir mal ein bild. bei onfocusout wird eine funktion aufgerufen. Also z.B.

Code:
<script>
function tuwas(){
	...
}
</script>

<img src="XXX.gif" onfocusout="tuwas();" />
Und in dieser Funktion möchte ich dann aber noch überprüfen, ob gleichzeitig mein mousecursor über einem div ("meinlayer") ist. das würde ich dann innerhalb dieser funktion machen:

Code:
<script>
function tuwas(){
	obj = document.getElementById("meinlayer");
	if(obj.onmouseover == true) {
		// Loese Funktion nicht aus
	} else {
		// Loese Funktion aus
	}
}
</script>

<img src="XXX.gif" onfocusout="tuwas();" />
<div id="meinlayer">hier ist dann das menue</div>
Stimmt diese Ansatz? Habs so probiert und es geht nicht :(
 
Zuletzt bearbeitet:
Stimmt dieser Ansatz? Habs so probiert und es geht nicht
Nö...es gibt zum einen keinen Event "onfocusout"....zum anderen überprüfst du mit
Code:
if(obj.onmouseover == true)
, ob obj ein onmouseover-Attribut hat(also ob dort bei onmouseover eine JS-Funktion aufgerufen wird).
 
und welchen ansatz kannst du mir dann empfehlen? Gibts vielleicht ein Tutorial dazu? Derzeit fokussiere ich primär den IE.
 
Zuletzt bearbeitet:
<head>
<title>test</title>
</head>
<body>
<div id="user_availability">status 2</div>
<script type="text/javascript">
<!--
var obj = document.getElementById("user_availability");
obj.onmouseover = Ausgabe;
function Ausgabe() {
alert("Capture Event funktioniert!");
}
//-->
</script>
</body>
</html>
 

Neue Beiträge

Zurück