Recent Questions
Q: I will build menu for several books’ Contents, each book is more than 100 lines and has links. I think if all the books’ contents in 1 *.JS file then it is TOO LOONG!!.
Can I break it down to 1 book for 1*.JS ? How?
A: You cannot divide your menuItems parameter.
You can only use one .js file for your menu parameters and the other.js file for your menuItems = [...];
But you can do it in two ways.
1) You can try to use several menus on the one page, for example:
param.js // file with menu parameters (all parameters before menuItems = [...];)
menu1.js // menuItems for "AC-DC", "ANLOG"
menu2.js // menuItems for "DIGITAL", "WinXP"
menu3.js // menuItems for "MS-Word", "MS-Excel"
In these menu files you should write
menuItems = [
...
];
dm_init();
Then you should install your menu in the following way
<script type="text/javascript" src="param.js"></script>
<table>
...
<script type="text/javascript" src="menu1.js"></script>
...
<script type="text/javascript" src="menu2.js"></script>
...
<script type="text/javascript" src="menu3.js"></script>
But it will be easier to use vertical menu in such case
var isHorizontal=0;
var smColumns=1;
2) You can also try to add some code, see the attached example.
In the first file (@MY books (Multiple Col.js) I write menuItems for the first item "AC-DC".
Notice that you should delete comma at the end of the last item
var menuItems = [
["AC-DC","", , , , , , , , ],
["|@Book1","testlink.htm", , , , , , , , ],
...
["|@Book3","", , , , , , , , ],
["||CH02","", , , , , , , , ],
["||CH01","", , , , , , , , ] // delete comma at the end of the last item
];
In the second file (@MY books (1.js) you should write
menuItems = menuItems.concat(
[
["ANLOG","", , , , , , , , ],
["|@Book1","", , , , , , , , ],
["|@Book2","", , , , , , , , ],
["|@Book3","", , , , , , , , ] // delete comma at the end of the last item
]
);
In the third file (@MY books (2.js) you should write
menuItems = menuItems.concat(
[
["DIGITAL","", , , , , , , , ],
["|Item 1332","", , , , , , , , ],
["WinXP","", , , , , , , , ],
["|Item 1333","", , , , , , , , ],
["MS-Word","", , , , , , , , ],
["|Item 1334","", , , , , , , , ],
["MS-Excel","", , , , , , , , ],
["|Item 1335","", , , , , , , , ] // delete comma at the end of the last item
]
);
dm_init();
Notice that you should write dm_init(); function in the last file.
In the .html file you should write
...
<tr>
<script type="text/javascript" src="@MY books (Multiple Col.js"></script>
<script type="text/javascript" src="@MY books (1.js"></script>
<script type="text/javascript" src="@MY books (2.js"></script>
</tr>
I hope you understand me.
Q: Hello. I have noticed that when you expand a menu and then click to another page, the menu is collapsed on the next page. I read about "state saving" and tried the parameter which did not work. Is there a way to accomplish this?
A: You can see the example for state saving here:
http://dhtml-menu.com/tree-examples/tree-menuxp-save-state.html
This menu saves its state.
To enable this mode you should include dtree_ss.js file intoyour html page and set the following parameter:
var tsaveState = 1;
See, if you open pages (with menus) from different folder itmeans that you open different menus. So, when you change a state, forexample, of the first menu within "content/" folder and then openanother page with the menu within "content/subfolder/", browsers looks for anothercookie file and can't find it and the second menu stays in a defaultstate. Is it clear?
Q: We've been using Deluxe Menu for a couple of years now and we're very pleased with it. Recently, we switched to a layout heavy on CSS, and when we insert the javascript menu code into an absolutely-positioned div, the menu appears where it should, but the sub-menus drop down off to the side in both Firefox and IE. I've tried adjusting the x-offsets in the configuration file with negative values to bring them closer to the top-level menu item, but this doesn't seem to do the trick completely.
I also went through a number of sample questions in the support section of the Deluxe Menu site, but I haven't been able to find any sort of resolution.
If you have any suggestions, I'd be very appreciative.
A: See, the problem is that the script can't get css properties of the object if they are described in separate .css block (or file).
In other words, you can't get the value of "POSITION: absolute" attribute of the object if the object doesn't have this property within inline style (style="POSITION:absolute;"). To get the value you should move .css style into style="" attribute.
Please, try to add your
css file -> inline css, for example:
You should add style="POSITION: absolute; TOP: 0px"
to the
<div id=div_name>
So, you'll have:
<DIV id=div_name style="POSITION: absolute; TOP: 0px">aaspot_US~.Hration...M&Project Tool Configuration.Try that.
Q: If you take a look at the upper menu, I have "|" separating all of the various menu items. How can I do this with Deluxe Menu?
I don't want to resort to using messages and would like to use the "|" character if at all possible.
A: You can paste a separator.
Please, see the following parameters:
//------- Separators -------
//--- Separators
var separatorImage="";
var separatorWidth="5";
var separatorHeight="100%";
var separatorAlignment="right";
var separatorVImage="images/public/separator.gif";
var separatorVWidth="3";
var separatorVHeight="100%";
var separatorPadding="";
You should set a separator in the menuItems, for example:
var menuItems = [
["Home","index.cfm", , , , , , , , ],
["-"],
["About Us","about.cfm", , , , , , , , ],
];