Ik wist zo snel geen correcte en korte titel te bedenken, maar dit omschrijft wel het probleem. Ik heb de navigatie op mijn site gemaakt volgens het artikel van A list Apart. Deze hide de divs die de content bevatten en unhide ze als je op de betreffende menu link klikt. Nu probeerde ik dit zelfde menu ook een suckerfish dropdown te maken. Daarvoor heb je om het in IE werkend te krijgen een stukje Javascript nodig, wat ik in dit geval boven het stukje javascript voor het hiden en unhiden van divs heb gezet. Ter verduidelijking:
Dit stuk code, met daaronder de code voor het hiden en unhiden van divs
Op de een of andere manier werkt het javascript van de dropdown NIET in IE als die andere scriptjes er onder staan. Als ik ze weg haal doet hij het wel, maar doet de rest van de pagina niet meer wat het hoort te doen. Link naar testadres: http://home.planet.nl/~knuls014/test/test.html
Ik heb btw de search gebruikt maar kon er niets ver vinden, wat overigens ook aan mij kan liggen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <script language="JavaScript" type="text/javascript">
startList = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes[i];
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
}
node.onmouseout=function() {
this.className=this.className.replace(" over", "");
}
}
}
}
}
window.onload=startList;
</script> |
Dit stuk code, met daaronder de code voor het hiden en unhiden van divs
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
| <script language="JavaScript" type="text/javascript">
window.onload = new function() {
for ( a in document.links )
document.links[a].hidefocus = "true"
}
</script>
<script language="JavaScript" type="text/javascript">
function hideDivs(exempt)
{
if (!document.getElementsByTagName) {
return null;
}
if (!exempt) exempt = "";
var divs =
document.getElementsByTagName("div");
for(var i=0; i < divs.length; i++)
{
var div = divs[i];
var id = div.id;
if ((id != "header") &&
(id != "footer") &&
(id != exempt))
{
div.style.display = "none";
}
}
}
function fixLinks()
{
if (!document.getElementsByTagName) {
return null;
}
var anchors =
document.getElementsByTagName("a");
for(var i=0; i < anchors.length; i++)
{
var a = anchors[i];
var href = a.href;
if ((href.indexOf("#") != -1) &&
(href.indexOf("header") == -1))
{
var index = href.indexOf("#") + 1;
href = "javascript:show('" +
href.substring(index) + "');";
a.setAttribute("href",href);
}
}
}
function show(what)
{
if (!document.getElementById) {
return null;
}
showWhat =
document.getElementById(what);
showWhat.style.display = "block";
hideDivs(what);
}
window.onload = function()
{
hideDivs("intro");
fixLinks();
}
</script> |
Op de een of andere manier werkt het javascript van de dropdown NIET in IE als die andere scriptjes er onder staan. Als ik ze weg haal doet hij het wel, maar doet de rest van de pagina niet meer wat het hoort te doen. Link naar testadres: http://home.planet.nl/~knuls014/test/test.html
Ik heb btw de search gebruikt maar kon er niets ver vinden, wat overigens ook aan mij kan liggen.