[JS] Rozwijane menu - jak zmodyfikować?

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
sroku
Nowy
Nowy
Posty: 21
Rejestracja: ndz mar 20, 2005 12:42 am

[JS] Rozwijane menu - jak zmodyfikować?

Post autor: sroku »

Obecnie mam takie menu jak na tej stronie: http://abaddon.gc.pl. Po najechaniu na jeden z "linków" w menu wyświetlają się poniżej nowe linki do odpowiednich działów. To jest fajne, ale jak ktoś niechcąco naciśnie odnośnik, na który najeżdża się na samym początku (nazwijmy go tytułowym) to otwiera się nowa strona z błędem.

Jak modyfikować ten skrypt żeby się tak nie robiło? Owszem, po najechaniu wyświetlają się nowe opcję, ale ten tytułowy odnośnik nie reaguje na kliknięcie. Możecie mi pomóc? A może ktoś z Was zna podobny skrypt, który działa tak jakbym chciał?

Zamieszczam jeszcze ten skrypt poniżej:
<!--Links used to initiate the sub menus. Pass in the desired submenu index numbers (ie: 0, 1) -->
<a href="Pomoc: Klikając poniżej dostaniesz się do odpowiednich działów" onMouseover="showit(0)">Photos</a> | <a href="Pomoc: Klikając poniżej dostaniesz się do odpowiednich działów" onMouseover="showit(1)">My city</a> | <a href="Pomoc: Klikając poniżej dostaniesz się do odpowiednich działów" onMouseover="showit(2)">My films</a> | <a href="Pomoc: Klikając poniżej dostaniesz się do odpowiednich działów" onMouseover="showit(3)">Downloads</a> | <a href="Pomoc: Klikając poniżej dostaniesz się do odpowiednich działów" onMouseover="showit(4)">Others</a> 

<!-- Edit the dimensions of the below, plus background color-->
<ilayer width=400 height=32 name="dep1" bgColor="#E6E6FF">
<layer name="dep2" width=400 height=32>
</layer>
</ilayer>
<div id="describe" style="background-color:#C10305;width:520px;height:13px" onMouseover="clear_delayhide()" onMouseout="resetit(event)"></div>


<script language="JavaScript1.2">

/*
Tabs Menu (mouseover)- By Dynamic Drive
For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
This credit MUST stay intact for use
*/

var submenu=new Array()

//Set submenu contents. Expand as needed. For each content, make sure everything exists on ONE LINE. Otherwise, there will be JS errors.

submenu[0]='<font size="1" face="Verdana"><b><a href="gallery/yelonowitze/yelonowitze.html" target="ramka"><font color="white">Yelonowitze</a> | <a href="miscellaneous.html" target="ramka"><font color="white">Miscellaneous</a></b></font> '

submenu[1]='<font size="1" face="Verdana"><b><a href="legnica/kowale/kowale.html" target="ramka"><font color="white">Blacksmith′s Tournament</a></b></font> '

submenu[2]='<font size="1" face="Verdana"><b><a href="films/bad_boys.html" target="ramka"><font color="white">Bad Boys</a></b></font> '

submenu[3]='<font size="1" face="Verdana"><b><a href="e_books.html" target="ramka"><font color="white">E-books</a></b></font> '

submenu[4]='<a href="sonda.php" target="ramka"><font color="white">Sonda</a> | <a href="contact.html" target="ramka"><font color="white">Contact</a> | <a href="about_me/about_me.html" target="ramka"><font color="white">About me</a></b></font> '

//Set delay before submenu disappears after mouse moves out of it (in milliseconds)
var delay_hide=500

/////No need to edit beyond here

var menuobj=document.getElementById? document.getElementById("describe") : document.all? document.all.describe : document.layers? document.dep1.document.dep2 : ""

function showit(which){
clear_delayhide()
thecontent=(which==-1)? "" : submenu[which]
if (document.getElementById||document.all)
menuobj.innerHTML=thecontent
else if (document.layers){
menuobj.document.write(thecontent)
menuobj.document.close()
}
}

function resetit(e){
if (document.all&&!menuobj.contains(e.toElement))
delayhide=setTimeout("showit(-1)",delay_hide)
else if (document.getElementById&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhide=setTimeout("showit(-1)",delay_hide)
}

function clear_delayhide(){
if (window.delayhide)
clearTimeout(delayhide)
}

function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

</script>
Asit
Zaczyna działać
Zaczyna działać
Posty: 402
Rejestracja: ndz lis 28, 2004 9:17 pm
Kontakt:

Re: [JS] Rozwijane menu - jak zmodyfikować?

Post autor: Asit »

Kod: Zaznacz cały

<a href="Pomoc: Klikając poniżej dostaniesz się do odpowiednich działów" onMouseover="showit(0)">Photos</a>
ten kod zamien na taki:

Kod: Zaznacz cały

<a href="#" title="Pomoc: Klikając poniżej dostaniesz się do odpowiednich działów" onMouseover="showit(0)">Photos</a>
i tak we wszystkich..

ktos byl tak madry ze do adresu wstawil opis.. prawdopodobnie jego zalozeniem bylo zeby ten napis byl widoczny na pasku stanu jednak z takim sposobem jeszcze sie nie spotkalem.. do href dajesz # a ten opis ustawiasz jako title..
ODPOWIEDZ