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: I am trying to follow your directions on how to load the application and I am completely lost as to what I need to do.
Do you have instructions on how operate the application; I am having a very difficult problem trying to maneuver around.
I am looking to create css vertical tabs, and the tabs are my personal images and I want to place html text into tabs.
A: To set your own images for tabs you should use the following
parameters (see how we created images in the attached example):
var bitemBackImage=["img/styleIE7_n_back.gif","img/styleIE7_o_back.gif","img/styleIE7_s_back.gif"];
var bbeforeItemImage=["img/styleIE7_n_left.gif","img/styleIE7_o_left.gif","img/styleIE7_s_left.gif"];
var bafterItemImage=["img/styleIE7_n_right.gif","img/styleIE7_o_right.gif","img/styleIE7_s_right.gif"];
You can also use a whole images for you tabs you should use only
var bitemBackImage=["img/styleIE7_n_back.gif","img/styleIE7_o_back.gif","img/styleIE7_s_back.gif"];
Set the dimensions of the menu here:
var bmenuWidth="600px";
var bmenuHeight="33px";
See in Deluxe Tabs there are two modes:
1. var tabMode=0;
You can create only one level of tabs and assign Object Id's of the
DIV's to show when you click on the tab.
["XP Tab 1","content1", "", "", "", "", "", "", "", ],
["XP Tab 2","content2", "", "", "", "", "", "", "", ],
["XP Tab 3","content3", "", "", "", "", "", "", "", ],
["XP Tab 4","content4", "", "", "", "", "", "", "", ],
2. var tabMode=1;
You can assign only links in this mode.
You should create top level items with subitems.
["XP Tab 1","", "", "", "", "", "", "", "", ],
["|Link 1_1","http://deluxe-tabs.com", "", "", "", "", "0", "", "", ],
["|Link 1_2","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 1_3","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 1_4","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 1_5","testlink.htm", "", "", "", "", "0", "", "", ],
["XP Tab 2","", "", "", "", "", "", "", "", ],
["|Link 2_1","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 2_2","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 2_3","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 2_4","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 2_5","testlink.htm", "", "", "", "", "0", "", "", ],
["XP Tab 3","", "", "", "", "", "", "", "", ],
["|Link 3_1","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 3_2","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 3_3","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 3_4","testlink.htm", "", "", "", "", "0", "", "", ],
["|Link 3_5","testlink.htm", "", "", "", "", "0", "", "", ],
You can use Object ID as well as Link in both modes. Use the following prefixes within item's link field:
"object:" - means that there is object id after it;
"link:" - means that there is a link after it.
"javascript:" - means that there is a javascript code after it, for example:javascript:alert(\'Hello!\')
So, you should write for example:
["|Link 1_1","object:Content1_1", "", "", "", "", "0", "", "", ],
Q: I've noticed something strange in the Deluxe Tree and I am wondering if this is normal.
Here's an example I have in my "data.js" file to populate the javascript ajax tree:
var tmenuItems = [
["Mes alertes/My alerts","", "", "", "", "", "", "0", "", "", ],
["|Francais","", "", "", "", "", "", "", "", "js/AjaxTreeFr.js", ],
["|English","", "", "", "", "", "", "", "", "js/AjaxTreeEn.js", ],
];
Here's basically how it goes:
- Basically the "0" represents a pre-built style that I have set for the root of my tree.
- Under this are the first child of the root called "Francais" and "English" which I link with a JS file to populate (Because the users will customize the alerts they want to see).
This works perfectly fine. But it is a workaround. Let me explain what I wanted in the first place:
var tmenuItems = [
["Mes alertes ","", "", "", "", "", "", "0", "", " js/AjaxTreeFr.js ", ],
["My alerts","", "", "", "", "", "", "", "", "js/AjaxTreeEn.js", ],
];
Basically I wanted to have 1 javascript ajax tree with 2 root items "Mes alertes" and "My alerts" but it seems impossible to attach a js file to the root of the tree view. (It doesn't get populated).
Any ideas?
A: See AJAX feature won't work for first-level in XP style now.
It works if you use:
var tXPStyle=0;
Q: Very interested by your product.I want to know, before buy, if I can call javascript function when the user click on a items in the horizontal drop down menu?
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"]
];