PDA

View Full Version : Help with drop down menu



oldquilt
02-01-2006, 01:40 PM
Can someone help me with this script?
http://www.dynamicdrive.com/dynamicindex1/dropmenuindex.htm

I cut and pasted it into this site: http://www.quiltbug.com/try.htm (I put the style sheet into my external css) . My problem is that I can't seem to add more menus. I cut and pasted the menu option but the script, when used at http://www.quiltbug.com/try.htm, will only show the last two.

Any clues how to fix this?

Kris

jscheuer1
02-01-2006, 09:57 PM
Where you have this:


//Contents for menu 1
var menu1=new Array()
menu1[0]='<a href="http://www.javascriptkit.com">1</a>'
menu1[1]='<a href="http://www.freewarejava.com">Freewarejava.com</a>'
menu1[2]='<a href="http://codingforums.com">Coding Forums</a>'
menu1[3]='<a href="http://www.cssdrive.com">CSS Drive</a>'

//Contents for menu 2, and so on
var menu2=new Array()
menu2[0]='<a href="http://cnn.com">2</a>'
menu2[1]='<a href="http://msnbc.com">MSNBC</a>'
menu2[2]='<a href="http://news.bbc.co.uk">BBC News</a>'

//Contents for menu 3
var menu3=new Array()
menu1[0]='<a href="http://www.javascriptkit.com">3</a>'
menu1[1]='<a href="http://www.freewarejava.com">Freewarejava.com</a>'
menu1[2]='<a href="http://codingforums.com">Coding Forums</a>'
menu1[3]='<a href="http://www.cssdrive.com">CSS Drive</a>'

All of the red menu1's should be menu3. Then you will have 3 different drop down arrays. As you add more, keep incrementing not only the number here:


var menu3=new Array()

but also the number for each entry in the menu.

masterful
02-01-2006, 10:01 PM
A question concerning this very same script if I may:

Is it possible to put this code into an external .js file and call it from multiple pages? I would assume that it is, but every time I attempt it I get an error message from the site saying that an object is not found on the first line in which I call for the "onMouseover="dropdownmenu(this, event, menu1, '110px')" onMouseout="delayhidemenu()""

I would assume that I'm not loading the .js correctly or something, but unfortunately I'm not educated enough to know where to start troubleshooting. I am essentially a dissector . . . I edit it up to make it do what I want, but I couldn't write it myself if I had to.

Thank you for any help, and thank you so much for the service you provide with this site.

Masterful.

jscheuer1
02-02-2006, 05:49 AM
Use a text editor to save the script, call it 'file_name.js' where 'file_name' can be any valid file name of your choosing. Substitute the name of your external .js file for some.js in the below:


<script src="some.js" type="text/javascript"></script>

Common problems arise when:

1 ) The script file is not in the directory specified. In the above example it must be in the same directory as the page(s) that use it. Below, it can be in the scripts directory off of the root of a domain:


<script src="http://www.somedomain.com/scripts/some.js" type="text/javascript"></script>

2 ) Opening, closing and/or 'hiding' tags are left in the external file. This means that you must strip:
<script>
<!--and
//-->
</script>and any of their many variations from the beginning and end of the external file.

3 ) The external call (<script src="some.js" type="text/javascript"></script>) is not inserted into the page at the correct spot. The external call must be inserted at the same place on the page where the script was/would have been.

4 ) Paths to other files (if) used by the script are no longer valid due to its location. This is only a problem if the external script is kept in a different directory than the page it was working on when it was an internal script. To correct this, use absolute paths inside the script. Absolute path examples:


http://www.somedomain.com/images/button.gif

http://www.somedomain.com/~mysitename/index.html

5 ) Inappropriately combining two or more scripts into one external file. Usually external scripts can be combined if one knows enough about scripting to do so properly. Even then it is possible to overlook something.

A rule of thumb when testing is, if it won't work on the page, it won't work as an external file either.

One other thing, if this is a DD script or any script that requires the credit remain for legal use, include the credit in the on page call, ex:


<script src="some.js" type="text/javascript">
/***********************************************
* IFrame SSI script II- Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use
***********************************************/
</script>

Make sure to retain all the 'decorations', as these include begin and end javascript comment delimiters without which the script won't function.