Tjena
Jag har en meny i DHTML, en modifierad Version av Jojoxx DOM Meny 2.
Den använder window.onload=function(){ initMenu(); } längst ner i JS filen, som infogas m.h.a den vanliga <script> taggen.
Nu har jag försökt implementera ett annat DHTML script, för att visa / dölja divar.
Detta script använder window.onload för att det ska funka och där får jag problem.
Antingen funkar inte menyn som den ska, eller så funkar inte det sistnämnda scriptet.
Jag har testat flera olika saker som att köra onload-raderna efter varandra, kombinerat dessa till en rad osv. men utan att lyckas.
Alla förslag tages tacksamt emot!
TroxyMedlem sedan mars 20041 505 inlägg Det finns många vettiga framework som löser detta åt dig.
Här är en lösnig som är mycket enkel att installera:
http://www.robertnyman.com/domassistant/modules-domassistant-load.htm
Hmm, det där ser vettigt ut, men jag är inte riktigt med på hur jag ska få det att funka.
Det här har jag mellan <head> taggarna:
<script type="text/javascript" src="css/menu.js"></script>
<script type="text/javascript" src="css/dhtml_showhide.js"></script>
<script type="text/javascript" src="css/domass/DOMAssistant.js"></script>
<script type="text/javascript" src="css/domass/DOMAssistantLoad.js"></script>
I filen DOMAssistantLoad.js har jag lagt in:
DOMAssistant.functionsToCall = [
/*
functionName // name of function
"functionName()" // name of function with parentheses and optional arguments
*/
"initMenu()"
initShowHideDivs
];
I filerna ska det i normala fall se ut såhär:
menu.js:
window.onload=function(){ initMenu(); }
dhtml_showhide.js:
window.onload = initShowHideDivs;
Jag är inte riktigt med på hur jag ska lösa det här, vore bra med lite hjälp på traven.
Tack!
TroxyMedlem sedan mars 20041 505 inlägg Såhär ska man nog anropa det hela i DOMAssistantLoad.js:
DOMAssistant.functionsToCall = [
"initMenu()", "initShowHideDivs()"
];
Men vid närmare eftertanke går det att lösa allt utan externa filer såhär:
window.onload = function() {
initMenu();
initShowHideDivs();
}
Men finessen med DOMAssistantLoad är att den är blixtsnabb eftersom den kör funktionerna direkt när själva koden har laddat, så man slipper vänta på bilder och annat som tar extra tid.
Troxy skrev:
Men vid närmare eftertanke går det att lösa allt utan externa filer såhär:
window.onload = function() {
initMenu();
initShowHideDivs();
}
Yes, funkar fint, tack!
Men, innan jag postade här, testade jag med:
window.onload = function() { initMenu; initShowHideDivs;}
Det funkade inte, beror det på att jag inte hade med "()"?
TroxyMedlem sedan mars 20041 505 inlägg Varje gång man kör en funktion så måste man anropa den med paranteser för argumentens skull.
Men om man refererar till en funktion så används inte paranteser.
Aha, såpass.
Tack för hjälpen!