Click to See Complete Forum and Search --> : I need a Javascript method that will stack items into an array. Not a global array...


Alphathree
07-03-2002, 04:07 PM
Below is an excerpt from what I am working on.

It is a fancy-smansy drop-down (actually drop-sideways) menu system.

I know CSS like I know the back of my own hand, but Javascript Objects is fresh and new. (Actually, I don't know the back of my own hand very well, but I know it like I know... my girlfriend. Wait, I don't have a girlfriend. Forget it.)

Anyway, you'll notice that I want to call addMenuItem numerous times. So, for example, when you mouse over corporate, you'll see Awards and Innovations and Board and Administration in the next level of menu.

I have the mechanics of displaying this all worked out elsewhere in my script.

So here's my problem. Obviously each time I call addMenuItem, it erases the previous item in that menu group.

Anyone who has any computer science background at this point thinks "DING! It's time for an array!"

At first I tried making an array inside MenuGroup. var myArray = new Array(). I had low hopes of this working because it is clearly a local array, and I can't mess with it from addMenuItem()

Next I tried making strItemName and strItemURL into arrays. Let's jsut say this.strItemName[this.iMenuItems] = strItemName produces some really interesting errors.

So: how the heck do I do this?!

function MenuGroup(strGroupName, strGroupURL) {
// Properties
this.iMenuItems = 0;
this.strGroupName = strGroupName;
this.strGroupURL = strGroupURL;

// Methods
this.addMenuItem = addMenuItem;
}

function addMenuItem(strItemName, strItemURL) {
this.strItemName = strItemName;
this.strItemURL = strItemURL;
this.iMenuItems = this.iMenuItems + 1;
}

var x = new MenuGroup("Corporate", "default.asp");
x.addMenuItem("Awards and Innovations", "awards.asp");
x.addMenuItem("Board and Administration", "board.asp");

Alphathree
07-03-2002, 04:09 PM
Furthermore, why have I been downgraded to Hammerhead shark? LOL