Hejsan,
Jag har klassisk trädmeny där man klickar på en rubrik för att få underliggande menyval utfällda under rubriken. Varje gång sidan laddas om så laddas även menyn om, och då läggs undermenyerna dolt under sina rubriker. Jag vill nu som default visa undermenyerna till EN rubrik, inte till alla. Men får det inte att fungera. Här kommer lite kod.
echo "<div class=menutitle onClick=\"SwitchMenu('sub".$i."')\" style=\"background-color: $bg;\">";
echo "<a href=\"#\" onClick=\"selectLink('button_".$i."_');\" onMouseover=\"rollIn('button_".$i."_');\" onMouseout=\"rollOut('button_".$i."_');\"><img src=\"img/icon_arrow_admin_dn.gif\" border=0 name=\"button_".$i."_\">$name</a>";
echo "</div>";
echo "<span class=submenu id=\"sub".$i."\" style=\"background-color: $bg;\">";
echo "<table border=0 width=100% height= cellspacing=0 cellpadding=0 style=\"padding: 0px;\">";
echo "<tbody>";
// Hämta undermenyerna
$get2 = mysql_query("SELECT * FROM submenu WHERE id_menu = '$id' AND public = '1' ORDER BY place, name");
while($row = mysql_fetch_array($get2))
{
$s_id = $row['id'];
$s_name = $row['name'];
$s_id_article = $row['id_article'];
$s_id_menu = $row['id_menu'];
$s_place = $row['place'];
$s_time_added = $row['time_added'];
$s_date_added = $row['date_added'];
$s_internal = $row['internal'];
$s_public = $row['public'];
if ($s_id == $_SESSION['id_page'])
{
echo "<tr>";
echo "<td width=100% style=\"padding-left: 10px; padding-right: 10px;\">";
echo "<a href=redirect.php?page=submenu&id=$s_id><b>$s_name</b></a><br/>";
echo "</td>";
echo "</tr>";
}
else
{
echo "<tr>";
echo "<td width=100% style=\"padding-left: 10px; padding-right: 10px;\">";
echo "<a href=redirect.php?page=submenu&id=$s_id>$s_name</a><br/>";
echo "</td>";
echo "</tr>";
}
}
echo "</tbody>";
echo "</table>";
echo "</span>";
Här följer även JavaScriptet som fäller ut undermenyn när man klickar på rubriken.
<script type="text/javascript">
/***********************************************
* Switch Menu script- by Martial B of [url]http://getElementById.com/[/url]
* Modified by Dynamic Drive for format & NS4/IE4 compatibility
* Visit [url]http://www.dynamicdrive.com/[/url] for full source code
***********************************************/
var persistmenu="yes" //"yes" or "no". Make sure each SPAN content contains an incrementing ID starting at 1 (id="sub1", id="sub2", etc)
var persisttype="sitewide" //enter "sitewide" for menu to persist across site, "local" for this page only
if (document.getElementById){ //DynamicDrive.com change
document.write('<style type="text/css">\n')
document.write('.submenu{display: none;}\n')
document.write('</style>\n')
}
function SwitchMenu(obj){
if(document.getElementById){
var el = document.getElementById(obj);
var ar = document.getElementById("masterdiv").getElementsByTagName("span"); //DynamicDrive.com change
if(el.style.display != "block"){ //DynamicDrive.com change
for (var i=0; i<ar.length; i++){
if (ar[i].className=="submenu") //DynamicDrive.com change
ar[i].style.display = "none";
}
el.style.display = "block";
}else{
el.style.display = "none";
}
}
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function onloadfunction(){
if (persistmenu=="yes"){
var cookiename=(persisttype=="sitewide")? "switchmenu" : window.location.pathname
var cookievalue=get_cookie(cookiename)
if (cookievalue!="")
document.getElementById(cookievalue).style.display="block"
}
}
function savemenustate(){
var inc=1, blockid=""
while (document.getElementById("sub"+inc)){
if (document.getElementById("sub"+inc).style.display=="block"){
blockid="sub"+inc
break
}
inc++
}
var cookiename=(persisttype=="sitewide")? "switchmenu" : window.location.pathname
var cookievalue=(persisttype=="sitewide")? blockid+";path=/" : blockid
document.cookie=cookiename+"="+cookievalue
}
if (window.addEventListener)
window.addEventListener("load", onloadfunction, false)
else if (window.attachEvent)
window.attachEvent("onload", onloadfunction)
else if (document.getElementById)
window.onload=onloadfunction
if (persistmenu=="yes" && document.getElementById)
window.onunload=savemenustate
</script>
<script type="text/javascript">
function showhide(id){
var lref=document.getElementById(id).style;
lref.display=(lref.display=='none')?'':'none';
}
</script>
Ps. Jag vet inte om den här tråden hör hemma under JavaScript mer... Ds.