Recent Questions Javascript Tree List
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: I'm trying to evaluate the possiblity of using your menu in our product. Can we specify our own onclick event handler for the menu item?
A: You're able to use Javascript for each item, for example:
var menuitems = [
["item text", "javascript:your_code_here"]
];
Unfortunately, you can't assign onmouseover/onClick event to each item.
However, you can achieve this by using standard html objects within items, for example:
var menuitems = [
["<div onClick='your_code_here'>item text</div>", "index.html"]
];
Q: I am evaluating your product and would like to display my top menu without a border, but have the dropdown (child menus) all have a border and shadow.
If I change the menuBorderWidth to anything but 0, I get a menu on both the top menus and dropdowns. I need a topBorderWidth and a childBorderWidth.
Is there any way to accomplish this?
A: Yes, you can do it.
Please, set:
var menuBorderWidth=0;
To set border for submenus you should use Individual Submenu styles, for example:
var menuStyles = [
     ["menuBorderWidth=1","menuBorderColor=#9A9CA7"], //style 0
];
var menuItems = [
     ["Home","testlink.html", , , , , , , , ],
     ["Product Info","", "default.files/icon1.gif", "default.files/icon1o.gif", , , , , , ],
         ["|Features","testlink.html", "default.files/icon2.gif", "default.files/icon2o.gif", , , , "0", , ], //style 0
     ["Samples","", "default.files/icon1.gif", "default.files/icon1o.gif", , , , , , ],
         ["|Sample 1","testlink.html", "default.files/icon6.gif", "default.files/icon6o.gif", , , , "0", , ], //style 0
         ["|Sample 2 is Disabled","testlink.html", "default.files/icon6.gif", "default.files/icon6o.gif", , "_", , "-1", , ],
...
You should assign style for the first item in the submenu.
Q: When I click between tabs, only one tab remains in its active state for a dhtml tab navigation.
Why isn't the tab changing to look "active" to reflect the page that it's on?
Please let me know where this setting is.
A: Deluxe Tabs doesn't support API functions which can return theselected tab.
You can set "bselectedItem" and " var bselectedSmItem" parametersbased on your link before you call your data file.
For example, move " var bselectedItem" and " var bselectedSmItem" parametersfrom your data file to your code.
<TD vAlign=top align=left>
/* Select Tab */
<script type="text/javascript" language="JavaScript1.2">
var bselectedItem=<?php echo $seltabs; ?>;
var bselectedSmItem=<?php echo $selsmtabs; ?>;
</script>
<SCRIPT src="data.js" type=text/javascript></SCRIPT>
</TD>
You should define seltabs and selsmtabs using server side script.
You can also set it on every page before you call data.js file, forexample:
<TD vAlign=top align=left>
/* Select Tab */
<script type="text/javascript" language="JavaScript1.2">
var bselectedItem=4;
var bselectedSmItem=3;
</script>
<SCRIPT src="data.js" type=text/javascript></SCRIPT>
</TD>
Try that.