aspose file tools*
The moose likes HTML, CSS and JavaScript and the fly likes A loop for this script?  A challenge for me! Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » HTML, CSS and JavaScript
Bookmark "A loop for this script?  A challenge for me!" Watch "A loop for this script?  A challenge for me!" New topic
Author

A loop for this script? A challenge for me!

Richard Vagner
Ranch Hand

Joined: Jun 26, 2001
Posts: 107
Hello,

I have been trying to find a solution for a while...
Basically, I have a dhtml menu script which is hard coded and works well but I want to use a for loop to make it more elegant. However I have tried many different tricks without success.

My main problem is that I can not pass any value to



This is the url for the file where you can see the javascript.

test


This is the use case senario:

1. User moves the mouse over "tutorial" on the top menu bar, the submenu for "tutorial" pops up.

2. User moves mouse away from "tutorial", the submenu disappear in 1 second.

3. User moves mouse down from "tutorial" to the popped submenu area, the submenu will stay visible.

4. User moves mouse away from the submenu, the submenu disappears in 1 second.

5. The submenu should either appear all the way to the left of the menu bar or all the way to the right of the menubar after crossing a curtain point.

Please help.
[ July 05, 2005: Message edited by: Richard Vagner ]
Eric Pascarello
author
Rancher

Joined: Nov 08, 2001
Posts: 15376
    
    6
You do not need quotes if the id is the string.
The code below is passe in a string with the id of an element. It toggles its display based on the state.



Eric
Richard Vagner
Ranch Hand

Joined: Jun 26, 2001
Posts: 107
Thanks, Eric for your reply. However, the problem is not "quote" or not "quote" because I tried all of them. The main problem I can not pass the value to getElementById() in the following code with quote or not quote:
This drags me for a while and I can not find a solution.


[ July 05, 2005: Message edited by: Richard Vagner ]
Richard Vagner
Ranch Hand

Joined: Jun 26, 2001
Posts: 107
I am just wondering if it is really possible to pass any value to getElementById(). I even tried

f="tutorial";
document.getElementById(f).on_mouse_over=function(){} and it is still not working! I do not what I am missing!
Eric Pascarello
author
Rancher

Joined: Nov 08, 2001
Posts: 15376
    
    6
Something like this:



Eric
Richard Vagner
Ranch Hand

Joined: Jun 26, 2001
Posts: 107
Eric,

Based on your idea, I tried something like the following. But the value still not passed.

Thanks a lot


Here
Eric Pascarello
author
Rancher

Joined: Nov 08, 2001
Posts: 15376
    
    6
You should be probably doing something like this:

document.getElementById(xID).onmouseover = new Function("clearTimeout(TIMER);document.getElementById('" + xID + "').style.visibility='visible';");
Richard Vagner
Ranch Hand

Joined: Jun 26, 2001
Posts: 107

You should be probably doing something like this:

document.getElementById(xID).on_mouse_over = new Function("clearTimeout(TIMER);document.getElementById('" + xID + "').style.visibility='visible';");


Eric,
Based on your suggestion, I came up with:

function AddHandlers(xID){
document.getElementById(xID).on_mouse_over = new Function("clearTimeout(TIMER);document.getElementById('" + xID + "').style.visibility='hidden';");
document.getElementById(xID).on_mouse_over = new Function("TIMER=setTimeout(document.getElementById('" + xID + "').style.visibility='visible', 500)");

}


However, the above code is not working.
1. It complains that TIMER is not defined.
2. Even when I removed clearTimeout(TIMER) portion the code is still not doing what I expected. Basically, when the mouse is over the submenu it is supposed to stay visible but it is not.
3. I have a hard time to make setTimeout work:
document.getElementById(xID).on_mouse_over = new Function("TIMER=setTimeout(document.getElementById('" + xID + "').style.visibility='visible', 500)");

It complains that visible is not defined. I do not know why.

See Complete Code Here

Thanks a lot.
 
Consider Paul's rocket mass heater.
 
subject: A loop for this script? A challenge for me!