Recent Questions
Q: We are registered users of the Deluxe Menu software. Today I tried to use the Javascript API, but there is something I do not understand and want to ask for support.
First, I set up a very simple menu:
var menuItems=[
['Menu 1'],
['|Submenu 1'],
['Menu 2'],
['|Submenu 2'],
];
This menu is built via dm_init().
Then, I inspect the menu (in Firebug):
>>> dm_ext_getSubmenuParams(0, 0)
["dm0m0", 2, "", 0, 1]
>>> dm_ext_getSubmenuParams(0, 1)
["dm0m1", 1, "dm0m0i0", 1, 0]
>>> dm_ext_getSubmenuParams(0, 2)
["dm0m2", 1, "dm0m0i1", 1, 0]
Ok, there are three submenus. Now I am going to delete one of them:
>>> dm_ext_deleteItem(0, 0, 1)
"Menu 2" disappears on the screen, this works as expected. But now when I re-inspect the menu using the API, I find that the API reports exactly the same as before:
>>> dm_ext_getSubmenuParams(0, 0)
["dm0m0", 2, "", 0, 1]
>>> dm_ext_getSubmenuParams(0, 1)
["dm0m1", 1, "dm0m0i0", 1, 0]
>>> dm_ext_getSubmenuParams(0, 2)
["dm0m2", 1, "dm0m0i1", 1, 0]
So, it seems the report function continues to know about the original menu structure and reflects it. Am I using the API in a wrong way?
The problem I want to solve is to remove the entire menu dinamico dhtml, in order to rebuild it dynamically. Because I did not see a function aimed to this functionality, my plan was to delete all main menu entries subsequently until the main menu inspector no longer reports an entry. Is there (a better) way to achieve this?
A: Unfortunately, dm_ext_deleteItem() only change visibility of theseitems.
It doesn't delete them completely.
We'll try to fix it in the next versions of Deluxe Menu.
Q: Is there any luck with getting your popup menusto work with the dynamic drive script..?
A: Unfortunately we don't work with dynamic drive script.
But I suppose that you can use it with Deluxe Menu without any problems.
But in that case you should move menuItems and dm_init(); function from your data file tothe html page directly.
For example delete the following code from your data file
var menuItems = [
["Aston Martin Page","javascript:ajaxpage('ajaxfiles/external3.htm', 'rightcolumn');\"", "", "", "", "", "", "", "", "", "", ],
];
dm_init();
and paste it in SCRIPT tags on your html page in the place where you want to have a menu:
...
<div>
<script type="text/javascript">
var menuItems = [
["Aston Martin Page","javascript:ajaxpage('ajaxfiles/external3.htm', 'rightcolumn');\"", "", "", "", "", "", "", "", "", "", ],
];
dm_init();
</script>
</div>
Q: I purchased your menu and I am currently using it. I was trying to use the vista template with the images. Yet when I have an js dropdown menu item that is a little long in text the image breaks in to two buttons. Is there a way to fix this or is that just the way it is with these templates?
A: Images in Vista Templates have the fixed width and height (92 x21):
var itemStyles = [
["itemWidth=92px","itemHeight=21px","itemBackColor=transparent,transparent","itemBorderWidth=0", "fontStyle=normal 11pxTahoma","fontColor=#3A3A3A,#000000", "itemBackImage=data-vista-2-04.files/btn_olive.gif,data-vista-2-04.files/btn_white.gif"],
];
When items text is too long you can have such effect.
You can try to use combined background for your items, for example:
var beforeItemImage = [,]; //left-side image for normal and mouse over state
var itemBackImage = [,]; //background or image for normal and mouse over state
var afterItemImage = [,]; //right-side image for normal and mouse over state
var beforeItemImageW = '';
var afterItemImageW = '';
var beforeItemImageH = '';
var afterItemImageH ='';
But you should create a small images in any Graph Editor, for example:
button_n_back.gif
button_n_left.gif
button_n_right.gif
button_o_back.gif
button_o_left.gif
button_o_right.gif
Q: I tried the following for subitem and it worked but not working with the "Title item" (Group or header item), is there a way to process onclick for the title item? Thanks again.
You're able to use Javascript for each item, for example:
var tmenuitems = [
["item text", "javascript:your_code_here"]
];
A: Unfortunately, title items doesn't allow to use Javascript in the sameway.
But you can do the following:
var tmenuitems = [
["<div onclick='your_code_here'>title text</div>"]
];