Im DIV-Container "menu" ist ein Link untergebracht. Dieser funktioniert auch. Wenn ich den Inhalt des Containers aber mit Javascript verändere (document.getElementById("menu").innerHTML = "<a href='http://www.google.de'>Link</a>";), funktioniert der Link nicht mehr. Was könnte hier das Problem sein?
Wie Stefan schon sagte, das Problem ist der mouseover der offensichtlich den Klick schon abfängt. Das Problem läßt sich aber durch eine leicht veränderte Logik beheben (das übrigens nur im IE auftrat).
Ich hab dann noch die nötigen Einheiten reingepackt und eine Fehlerprüfung ist auch für JS sinnvoll, Benutzer mit alten Browsern werden es dir danken.
var parent_obj = null, optional = false;
function show_menu(parent_new)
{
if(!document.getElementById) return;
var menu = document.getElementById("menu");
if(!menu) return;
if(parent_new)
{
parent_obj = parent_new;
menu.innerHTML = "<a href='http://www.google.de'>Link</a>";
menu.style.left = (parent_obj.offsetLeft + 10) + 'px';
menu.style.top = (parent_obj.offsetTop + 10) + 'px';
}
menu.style.visibility = "visible";
menu.style.zIndex = 10;
}
function kill_menu()
{
if(!document.getElementById) return;
var menu = document.getElementById("menu");
if(!menu) return;
menu.style.visibility = "hidden";
menu.style.zIndex = 1;
}
Der HTML Code:
<div id='menu' onMouseOut='kill_menu()' onMouseOver='show_menu(false)'><a href='http://www.google.de'>Link</a></div>
<div onMouseOver='show_menu(this)' onMouseOut='kill_menu()'>Test1</div>
<div onMouseOver='show_menu(this)' onMouseOut='kill_menu()'>Test2</div>
Struppi.