Recent Questions Menu Treeview Error Object Expected
Q: I need to load a tab page and have the correct javascript menu rollover tab showing based on a variable that is available when the page loads. How do I get the tab to change to a different tab then the one defined in the configuration file?
Example
bmenuItem = 0; /* this is the default */
When my page reloads I want bmenuItem = someVariable;
How do I do this?
A: Deluxe Tabs doesn't support API functions which can return theselected javascript menu rollover 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>
Q: Pls help me with another question.
I have an horizontal menu in which the submenus drop down (as in example # 1 you have in your web).
For the first level items (which are horizontal), I do not want item spacing or itemPadding, that is:
var itemSpacing=0;
var itemPadding=0;
However, for the second and third level menu items, that drop down, I do need spacing and padding, like this:
var itemSpacing=1;
var itemPadding=1;
How can achieve this if, we have only one set of parameters??
Thank you very much and best regards
A: You should use Individual Styles.
You should set the following parameters:
var itemSpacing = 0;
var itemPadding = 0;
and create individual style for submenus
var menuStyles = [
["menuBackImage=images/subm_back.gif","itemSpacing=1","itemPadding=1"], // add Spacing and Padding to the style which is used for the third level menu items.
["columnPerSubmenu=2"],
["itemSpacing=1","itemPadding=1"], //style 2
];
You should assign this style for the second and third level menu items
["DHTML Menus","", "images/icon1.gif", "images/icon1o.gif", , , , , , , , ],
["|The JavaScript Tree Menu","http://deluxe-menu.com",
"images/icon2.gif", "images/icon2o.gif", , , , "2", , , , ], // assign Style 2
["||Features","", "images/icon3.gif", , , , "0", "0", , , , ], // assign Style 0
["|||First Column","", , , , , "0", "1", , , , ],
["|||Second Column","", , , , , "0", , , , , ],
["||Cross-frame Mode","", "images/icon5.gif", "images/icon5o.gif", , , "1", , , , , ],
["||Easy Installation","", "images/icon5.gif", "images/icon5o.gif", , , "1", , , , , ],
["|The Javascript/DHTML Tree","http://deluxe-tree.com", "images/icon2.gif", "images/icon2o.gif", , , , , , , , ],
...
Q: As I have stated before, your Deluxe-Menu is very very good.
But there is allways room for improvement.
Is there any chance to see support for the following in Deluxe-Menu:
When I move the mousepointer above a menuitem and right-click I would like to see in the javascript contextual menu (the context menu provided by the browser):
Open Link in new window
Open Link in new tab
If the above is not possible or not something you want to enable.... then, there should be possible to make a workaround to make this work:
I see there is support for custom javascript contextual menus.....
.... is there any possibility to make a custom context menu that show above a menuitem and that show when right clicking on the menuitem.
Should hopefully be possible to create in such way that I create one context menu in javascript (the deluxe menu way... ) , but when clicking on "Open link in new window" from that custom menu, then the JS code should call a javascript function of mine (or yours), with a parameter related to the menuitem that was right-clicked...
And this javascript function should be able to resolve the actual URL (based on the input parameter rel. to the menuitem) and then open a new window using window.open()
If not possible to implement using the native browser context menu, then I belive it should be possible to do it using my workaround how to.....
Just a thought....
Any suggestions on how I can make the workaround work, or if maybe you could support the workaround in some way in future releases of Deluxe-Menu?
A: Yes, there is a workaround.
You can write your items in the following way:
["|<a href='http://www.domain.com' class="link">test test test</a>",""],
You should assign style for this link.
A.link {
...
}
A.link:hover {
...
}
Q: Is it possible set a menu item to pressed when a page is loaded when you have multiple drop down menus on the page?
I have 2 menus side by side and I was able to set the pressed item with the JavaScript API as described in your FAQs but when I try to show an item as pressed in a second menu on the same page, the corresponding item in the first menu shows as pressed. Is there a different function that I can use for this or a way to reset the menu ID in the second menu to start from where the first menu left off so I can use the same function?
A: See the first parameter in
dm_ext_setPressedItem (menuInd, submenuInd, itemInd, recursion)
function is index of the menu.
So, if you use several menus on the one page you should use differentmenuInd parameter.
For example you have:
<script type="text/javascript" src="menu/data1.js"></script> //menuInd=0
...
<script type="text/javascript" src="menu/data2.js"></script> //menuInd=1
...
<script type="text/javascript" src="menu/data3.js"></script> //menuInd=2
...
<script type="text/javascript" src="menu/data4.js"></script> //menuInd=3
So, for the second menu you should write:
dm_ext_setPressedItem (1, 2, 5)