Avatar billede krk Nybegynder
11. november 2005 - 09:13 Der er 10 kommentarer og
1 løsning

hjælp til tilrettelse af menu kode

Hej
Jeg har for lang tid siden fundet koden til en menu på  http://www.dhtmlcentral.com/script/search.asp?category=menu (FoldoutMenu2. men jeg har stadig ikke helt fået den til at virke :-(
Nu er mit problem at menuen folder sig sammen hver gang jeg klikker på et underpunkt.
Jeg har lavet et eksempel på www.kryt.dk/lafodan
Det jeg har brug for er kode til en menu som kan "huske" hvordan menuen så ud fra den side man lige kom fra. Altså hvis menupunkt "produkter" er foldet ud og brugeren klikker på "døre", så vil siden med døre komme frem OG menupunktet "produkter" skal stadig være foldet ud, så det er nemt for brugeren at klikke på "vinduer".

Er der nogen der har tid og overskud til at hjælpe mig... eller kender til en bedre løsning??
Skal måske lige sige at mit site er bygget op i php og derfor bliver hele siden jo loaded hver gang.
Avatar billede krk Nybegynder
11. november 2005 - 09:17 #1
Jeg sender lige koden med.

menu.php: (jeg har slette nogen af menupunkterne for at gøre koden korter - håber ikke jeg slettede for meget)

<style type="text/css">
#divFoldCont    {position:relative; width:145px; visibility:hidden;}
.clFold            {position:absolute; width:145px;  margin: 5px; }
.clFoldSub        {position:absolute; left:15px; width:147px; visibility:hidden;}
.clFoldSub2        {position:absolute; left:15px; width:147px; visibility:hidden;}
.clFoldLinks    {font-family:Arial, Verdana, Helvetica, Helv; font-size:9px; font-weight:bold; text-decoration:none; color:black;}
.clSubLinks        {font-family:Arial, Verdana, Helvetica, Helv; font-size:9px; font-weight:bold; text-decoration:none; color:black;}
.clSubLinks2    {font-family:Arial, Verdana, Helvetica, Helv; font-size:12px; text-decoration:none; color:black;} 
</style>

<?php
print"

<table  style='width: 146px; margin: 0 auto; border: 0px ;'>
  <tr>
    <td valign='top'>
 

<!-- Menu container -->
<div id='divFoldCont'>
    <!-- Top 1 -->
    <div id='divFold0' class='clFold'><a href='#' onclick='foldmenu(0); return false' class='clFoldLinks' onfocus='if(this.blur)this.blur()'><img src='foldoutmenu2_arrow.gif' name='imgFold0' width=12 height=12 alt='' border=0> Lafodan</a><br>
        <div id='divFoldSub0_0' class='clFoldSub'><a href='?page=profil' class='clSubLinks' onfocus='if(this.blur)this.blur()'><img src='foldoutmenu2_arrow.gif' name='imgFold0Sub0'  alt='' border=0> Profil</a><br>
            <div id='divFoldSub0_0_0' class='clFoldSub2'></div>
        </div>
       
    </div>
    <!-- Top 2 -->
    <div id='divFold1' class='clFold'><a href='#' onclick='foldmenu(1); return false' class='clFoldLinks' onfocus='if(this.blur)this.blur()'><img src='foldoutmenu2_arrow.gif' name='imgFold1' width=12 height=12 alt='' border=0> Produkter</a><br>
        <div id='divFoldSub1_0' class='clFoldSub'><a href='?page=produkt/doer' class='clSubLinks' onfocus='if(this.blur)this.blur()'><img src='foldoutmenu2_arrow.gif' name='imgFold1Sub0'  alt='' border=0> Døre</a><br>
            <div id='divFoldSub1_0_0' class='clFoldSub2'></div>
        </div>
        <div id='divFoldSub1_1' class='clFoldSub'><a href='?page=produkt/vinduer' class='clSubLinks' onfocus='if(this.blur)this.blur()'><img src='foldoutmenu2_arrow.gif' name='imgFold1Sub1'  alt='' border=0> Vinduer</a><br>
            <div id='divFoldSub1_1_0' class='clFoldSub2'></div>
        </div>
        <div id='divFoldSub1_2' class='clFoldSub'><a href='?page=produkt/skydedoere'  class='clSubLinks' onfocus='if(this.blur)this.blur()'><img src='foldoutmenu2_arrow.gif' name='imgFold1Sub2'  alt='' border=0> Hæveskydedøre</a><br>
            <div id='divFoldSub1_2_0' class='clFoldSub2'></div>
        </div>
        <div id='divFoldSub1_3' class='clFoldSub'><a href='?page=produkt/trae_elementer'  class='clSubLinks' onfocus='if(this.blur)this.blur()'><img src='foldoutmenu2_arrow.gif' name='imgFold1Sub3'  alt='' border=0> Hård træ elementer</a><br>
            <div id='divFoldSub1_3_0' class='clFoldSub2'></div>
        </div>
        <div id='divFoldSub1_4' class='clFoldSub'><a href='?page=produkt/trae_alu'  class='clSubLinks' onfocus='if(this.blur)this.blur()'><img src='foldoutmenu2_arrow.gif' name='imgFold1Sub4'  alt='' border=0> Træ/Alu</a><br>
            <div id='divFoldSub1_4_0' class='clFoldSub2'></div>
        </div>
        <div id='divFoldSub1_5' class='clFoldSub'><a href='?page=produkt/profilsnit'  class='clSubLinks' onfocus='if(this.blur)this.blur()'><img src='foldoutmenu2_arrow.gif' name='imgFold1Sub5'  alt='' border=0> Profilsnit</a><br>
            <div id='divFoldSub1_5_0' class='clFoldSub2'></div>
        </div>
    </div>
   




</div>

    </td>
  </tr></table>

";
?>


menu.js:

// JavaScript Document // -->

/********************************************************************************** 
FoldoutMenu2
*  Copyright (C) 2001 <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a>
*  This script was released at DHTMLCentral.com
*  Visit for more great scripts!
*  This may be used and changed freely as long as this msg is intact!
*  We will also appreciate any links you could give us.
*
*  Made by <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a>
*********************************************************************************/

function lib_bwcheck(){ //Browsercheck (needed)
    this.ver=navigator.appVersion
    this.agent=navigator.userAgent
    this.dom=document.getElementById?1:0
    this.opera5=this.agent.indexOf("Opera 5")>-1
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;
    this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
    this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
    this.ie=this.ie4||this.ie5||this.ie6
    this.mac=this.agent.indexOf("Mac")>-1
    this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
    this.ns4=(document.layers && !this.dom)?1:0;
    this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
    return this
}
var bw=new lib_bwcheck()




if(document.layers){ //NS4 resize fix...
    scrX= innerWidth; scrY= innerHeight;
    onresize= function(){if(scrX!= innerWidth || scrY!= innerHeight){history.go(0)} }
}

if(navigator.userAgent.indexOf('Opera')>-1 && document.getElementById){ //Opera 5 resize fix.
    scrX= innerWidth; scrY= innerHeight;
    document.onmousemove= function(){
        if(scrX<innerWidth-10 || scrY<innerHeight-10 || scrX>innerWidth+10 || scrY>innerHeight+10){
            scrX = innerWidth;
            scrY = innerHeight;
            foldInit();
        }
    };
}
/************************************************************************************
This is the new foldoutmenu, with more levels!
This is in some ways a rather advanced menu so please read every
note in this script and in the comments in the page to understand how
it works.

NOTE: if you change the position of divFoldCont from absolute to relative,
you can put the menu in a table. HOWEVER it will no longer work in netscape 4.
If you wish to support netscape 4, you have to use absolute positioning.
************************************************************************************/

//Do you want images (if not set to 0 and remove the images from the body)?
foldImg=1

//Here are the images for the top links.
foldinImg=new Image(); foldinImg.src="foldoutmenu2_arrow.gif"        //The image for the closed state.
foldoutImg=new Image(); foldoutImg.src="foldoutmenu2_arrow_open.gif"    //The image for the open state.
//Here are the images for the sub links.
foldsubinImg=new Image(); foldsubinImg.src="foldoutmenu2_arrow.gif"        //The image for the "in" state.
foldsuboutImg=new Image(); foldsuboutImg.src="foldoutmenu2_arrow_open.gif"    //The image for the "out" state.
//If you change the images above please remember to change the images in the actual page as well.

mainmenus=2 //How many main menus do you have?

//How many submenus do you have beneath each main level.
submenus=new Array(1,6)
//In this example I have 3 submenus in the first top menu,
//3, in the second, 2 submenus in the third top menu and 3 in the forth.
//It's really important that these numbers are correct.

pxbetweenmain = 2 //How much space should there be between the main menus
pxbetweensub = 2 //How much space should there be between the sub menus

mainstayfolded = false  //Should the main menus stay folded?
substayfolded =  true //Should the sub menus stay folded?  Play with these 2 variables.


/************************************************************************************
Making cross-browser objects
************************************************************************************/
function makeMenu(obj,nest){
    nest=(!nest) ? "":'document.'+nest+'.';
      this.css= bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;
    this.elm= bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
    this.ref= bw.dom || bw.ie4? document:bw.ns4?eval(nest+"document.layers." +obj+".document"):0;
    this.x= bw.ns4?this.css.left:bw.opera5?this.css.pixelLeft:this.elm.offsetLeft;
    this.y= bw.ns4?this.css.top:bw.opera5?this.css.pixelTop:this.elm.offsetTop;
    this.height= bw.ns4?this.ref.height:bw.opera5?this.css.pixelHeight:this.elm.offsetHeight;
    this.hideIt= b_hideIt;
    this.showIt= b_showIt;
    this.moveIt= b_moveIt;
    this.status= 0;
    return this;
}

// A unit of measure that will be added when setting the position of a layer.
var px = bw.ns4||window.opera?"":"px";

function b_showIt(){this.css.visibility="visible"; this.status=1}
function b_hideIt(){this.css.visibility="hidden"; this.status=0}
function b_moveIt(x,y){this.x=x; this.y=y; /*this.css.left=this.x+px;*/ this.css.top=this.y+px;}
/************************************************************************************
Initiating the page and making the menu
************************************************************************************/
function foldInit(){
    //Fixing the browsercheck for opera... this can be removed if the browsercheck has been updated!!
    bw.opera5 = (navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?true:false
    if (bw.opera5) bw.ns6 = 0
   
    //Creating the foldoutmenu
    oFold = new Array();
    y = 0;
    for (var i=0; i<mainmenus; i++){
        oFold[i] = new makeMenu('divFold'+i,'divFoldCont');
        oFold[i].moveIt(0,y);
        oFold[i].size = oFold[i].height;
        y += oFold[i].height+pxbetweenmain;
        if (bw.ns4) oFold[i].css.clip.bottom = 500;
        oFold[i].sub = new Array();
        oFold[i].subs = top_subs;
        suby = oFold[i].height+pxbetweensub;
        for (var j=0; j<submenus[i]; j++){
            oFold[i].sub[j] = new makeMenu('divFoldSub'+i+'_'+j,'divFoldCont.document.divFold'+i);
            oFold[i].sub[j].sub = new makeMenu('divFoldSub'+i+'_'+j+'_0','divFoldCont.document.divFold'+i+'.document.divFoldSub'+i+'_'+j);
            oFold[i].sub[j].hideIt();
            oFold[i].sub[j].sub.hideIt();
            oFold[i].sub[j].moveIt(10,suby);
            suby += oFold[i].sub[j].height+pxbetweensub;
        }
    }
      oFoldCont = new makeMenu('divFoldCont');
    if (bw.ns4) oFoldCont.css.clip.bottom = 800;
      oFoldCont.showIt(); //Showing the menu when the menu have been "created"
}
/************************************************************************************
Object function to the top of the menus.
************************************************************************************/
function top_subs(show, num){
    for (var j=0; j<this.sub.length; j++){
        if (show){
            this.sub[j].showIt()
            if (foldImg) this.ref["imgFold"+num].src = foldoutImg.src
            if (substayfolded){if(this.sub[j].sub.status) this.sub[j].sub.showIt()
            }else{
                if (foldImg) this.sub[j].ref["imgFold"+num+"Sub"+j].src = foldsubinImg.src
                this.sub[j].sub.hideIt()
            }
        }else{
            this.sub[j].hideIt()
            if (foldImg) this.ref["imgFold"+num].src = foldinImg.src
            if (!substayfolded) this.sub[j].sub.hideIt()
            else if (substayfolded) this.sub[j].sub.css.visibility="hidden"
        }
    }
}
/************************************************************************************
Checking height of the menus, and moves them to the correct position.
************************************************************************************/
function checkheight(org){
    if(mainstayfolded) istart=org; else istart=0
    for(i=istart;i<oFold.length;i++){
        oFold[i].size=oFold[i].height
        for(j=0;j<oFold[i].sub.length;j++){
            oFold[i].sub[j].size=oFold[i].sub[j].height+pxbetweensub
            if(oFold[i].sub[j].status){
                oFold[i].size+=oFold[i].sub[j].size
                if(oFold[i].sub[j].sub.status){
                    oFold[i].size+=oFold[i].sub[j].sub.height+pxbetweensub
                    oFold[i].sub[j].size+=oFold[i].sub[j].sub.height+pxbetweensub
                }
            }
            if(j!=0) oFold[i].sub[j].moveIt(10,oFold[i].sub[j-1].y+oFold[i].sub[j-1].size)
        }
        if(i!=0) oFold[i].moveIt(0,oFold[i-1].y+oFold[i-1].size+pxbetweenmain)
    }
}
/************************************************************************************
Fold in and out the submenus.
************************************************************************************/
function subfoldmenu(main,sub){
    if (!substayfolded){
        for (var i=0; i<oFold[main].sub.length; i++){
            if (i!=sub){
                oFold[main].sub[i].sub.hideIt();
                if (foldImg) oFold[main].sub[i].ref["imgFold"+main+"Sub"+i].src = foldsubinImg.src
            }
        }
    }
    if (!oFold[main].sub[sub].sub.status){
        oFold[main].sub[sub].sub.showIt()
        if(foldImg) oFold[main].sub[sub].ref["imgFold"+main+"Sub"+sub].src = foldsuboutImg.src
    }
    else{
        oFold[main].sub[sub].sub.hideIt()
        if(foldImg) oFold[main].sub[sub].ref["imgFold"+main+"Sub"+sub].src = foldsubinImg.src
    }
    checkheight(main)
}
/************************************************************************************
Fold in and out the mainmenus
************************************************************************************/
function foldmenu(num){
    if (!mainstayfolded){
        for(var i=0; i<oFold.length; i++){
            if(i!=num) oFold[i].subs(0,i)
        }
    }
    if(oFold[num].sub.length){
    if (!oFold[num].sub[0].status) oFold[num].subs(1,num)
    else oFold[num].subs(0,num)
    }
    checkheight(num)
}
//Initiating the menus onload, if the browser is ok.
if(bw.bw) onload = foldInit;
Avatar billede softspot Forsker
11. november 2005 - 12:43 #2
Hvis jeg kigger på siden du henviser til, så vil jeg mene det skyldes at siden genindlæser og menuen derfor bliver nulstillet til sin oprindelige form (altså lukket pånær det første niveau).

Hvis du vil undgå dette, kan du enten oprette en iframe (eller et frameset) som menuen kører i og så sætte target-attributten på hvert enkelt menupunkt til at pege den en anden (i)frame.

Alternativt skal du have gang i cookies til at håndtere tilstanden af menuen, således tilstanden huskes til næste genindlæsning af siden...
Avatar billede krk Nybegynder
11. november 2005 - 12:46 #3
Jeg var nok mest efter en løsning hvor menuens tilstand bliver husket til den næste genindlæsning
Avatar billede johan.o Nybegynder
11. november 2005 - 14:39 #4
Du kan vel også, ikke at det er en særlig vedligeholdelses venlig metode, men :

Jeg går ud fra at du laver noget include() i din php kode, alt efter hvilket menupunkt man trykker på. I starten af hver enkelt af disse 'subpages' kunne du så ligge noget javascript som åbnede menuen så den passer med den side der vises.

Mvh. Johan
Avatar billede krk Nybegynder
11. november 2005 - 14:55 #5
Jeg forstår ikke helt hvad du mener, men jeg har netop lavet mit site i php netop for ikke at få for mange sider der skal rettes på :-)
Avatar billede krk Nybegynder
11. november 2005 - 14:59 #6
Måske jeg bare skulle vælge en anden for for menu. Er der nogen der kender nogle flotte lodrette menuer med 1 undermenu niveau :-)
Avatar billede krk Nybegynder
11. november 2005 - 15:00 #7
og som kan bruges sammen php include()
Avatar billede krk Nybegynder
14. november 2005 - 09:39 #8
softspot, det blev din løsning med iframe jeg valgte at bruge, så du henter point
Avatar billede softspot Forsker
14. november 2005 - 11:08 #9
Jeg har desværre ikke helt styr på cookies, så jeg føler ikke jeg kan give dig en vandtæt løsning. Jeg er da enig med dig i at det ville være den bedste løsning.

Jeg lavede på et tidspunkt dette ifm. et andet spørgsmål, men jeg synes det er noget kompliceret og så er jeg ikke sikker på at det fungerer hvis du f.eks. har andre cookies på samme site (det er jo ikke særlig smart). Det er en træstruktur som kan huske hvilke noder der er foldet ud på alle niveauer, men som sagt det er lidt svært at overskue, dels fordi det ikke er smukt sat sammen, dels fordi cookies er lidt besværlige (efter min mening):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Demoside til treekontrol</title>
    <script type="text/javascript">
        var valueSeparator = ",";
       
        var mNodes = "";
       
        // Cookie funktioner til at gemme informationer om hvilke grene
        // i træet der er åbne...
        function getCookieValue() {
            return document.cookie;
        }

        function setCookieValue(value) {
            mNodes = value;
            document.cookie = value;
        }
       
        function getCookieString(value) {
            var tmpTme = new Date();
            var expTme = new Date(tmpTme.getTime() + 300000);
            return "tree=" + value + "; expires=" +  expTme + ";";
        }
       
        function createCookie(aCookies, value) {
            setCookieValue(getCookieString(value));
            showCookieValues();
            return true;
        }
       
        function getOpenNodes() {
            var cookies = getCookieValue();
            var aCookies = cookies.split(";");
            for(var i = 0; i < aCookies.length; i++) {
                var aParts = aCookies[i].split("=");
                if(aParts[0].indexOf("tree") > -1) {
                    return aParts[1];
                }
            }
            return "";
        }
       
        function setOpenNode(id) {
            var cookies = getCookieValue();
            var aCookies = cookies.split(";");
            for(var i = 0; i < aCookies.length; i++) {
                var aParts = aCookies[i].split("=");
                if(aParts[0].indexOf("tree") > -1) {
                    var nodes = valueSeparator + aParts[1] + valueSeparator;
                    if(nodes.indexOf(valueSeparator + id + valueSeparator) == -1) {
                        // så skal den åbnes, dvs. id'et skal tilføjes cookien...
                        nodes += id;
                        setCookieValue(getCookieString(nodes.substr(1)));
                        showCookieValues();
                    }
                    return true;
                }
            }
            createCookie(aCookies, id);
        }
       
        function setCloseNode(id) {
            var cookies = getCookieValue();
            var aCookies = cookies.split(";");
            for(var i = 0; i < aCookies.length; i++) {
                var aParts = aCookies[i].split("=");
                if(aParts[0].indexOf("tree") > -1) {
                    var aItem = aParts[1].split(valueSeparator);
                    for(var itmIdx = 0; itmIdx < aItem.length; itmIdx++) {
                        if(aItem[itmIdx] == id) {
                            aItem.splice(itmIdx,1);
                            setCookieValue(getCookieString(aItem.join(valueSeparator)));
                            showCookieValues();
                            break;
                        }
                    }
                    return true;
                }
            }
            createCookie(aCookies, id);
        }
       
        function showCookieValues() {
            document.getElementById("cookieValues").innerHTML = "Open nodes: " + getOpenNodes() + "<br>Cookie: " + getCookieValue();
        }
       
        // Funktion til at sætte træet op ved load af dokumentet...
        window.onload = function() {
            var uls = document.getElementsByTagName("UL");
            var openNodes = valueSeparator + getOpenNodes() + valueSeparator;
            showCookieValues();
            for(var obj in uls) {
                if(uls[obj].className) {
                    var lnks = uls[obj].getElementsByTagName("A");
                    for(var i = 0; i < lnks.length; i++) {
                        if(lnks[i].className == "toggle") {
                            lnks[i].onclick = function() { toggleNode(this); this.blur(); return false; }
                            if(openNodes.indexOf(valueSeparator + lnks[i].parentNode.id + valueSeparator) > -1) {
                                lnks[i].childNodes[0].src = "minus.gif";
                                lnks[i].parentNode.getElementsByTagName("UL")[0].style.display = "block";
                            }
                            else {
                                lnks[i].childNodes[0].src = "plus.gif";
                                lnks[i].parentNode.getElementsByTagName("UL")[0].style.display = "none";
                            }
                        }
                    }

                    var imgs = uls[obj].getElementsByTagName("IMG");
                    for(var i = 0; i < imgs.length; i++) {
                        if(imgs[i].className == "indicator" && imgs[i].parentNode.tagName != "A") {
                            imgs[i].src = "leaf.gif";
                        }
                    }
                }
            }
        }
       
        function toggleNode(obj) {
            var objParent = obj.parentNode;
            if(objParent) {
                for(var i = 0; i < objParent.childNodes.length; i++) {
                    var objChild = objParent.childNodes[i];
                    if(objChild.tagName) {
                        if(objChild.tagName.toLowerCase() == "ul") {
                            if(objChild.style.display != "none"){
                                objChild.style.display = "none";
                                obj.childNodes[0].src = "plus.gif";
                                setCloseNode(objParent.id);
                            }
                            else {
                                objChild.style.display = "block";
                                obj.childNodes[0].src = "minus.gif";
                                setOpenNode(objParent.id);
                            }
                            return true;
                        }
                    }
                }
            }
        }
       
        function firstParentTagName(obj, findTagName) {
            if(obj) {
                if(obj.tagName == findTagName)
                    return obj;
                else
                    return firstParentTagName(obj.parentNode, findTagName);
            }
            else
                return null;
        }
       
    </script>
    <style type="text/css">
        ul { margin:0 0 0 15px; padding:0; list-style-type:none; }
        img.indicator { border:none; width:10px; height:10px; }
    </style>
</head>
<body>

    <div id="cookieValues">&nbsp;</div>
    <a href="testCookie2.asp">Til server</a><br><br>
   
    <ul class="treemenu">
        <li id="m1">
            <a href="#" class="toggle"><img class="indicator" src=""></a>&nbsp;<a href="#">Test 1</a>
            <ul>
                <li id="m1_1"><img class="indicator" src="">&nbsp;<a href="#">Test 1.1</a></li>
                <li id="m1_2"><img class="indicator" src="">&nbsp;<a href="#">Test 1.2</a></li>
                <li id="m1_3"><img class="indicator" src="">&nbsp;<a href="#">Test 1.3</a></li>
            </ul>
        </li>
        <li id="m2">
            <a href="#" class="toggle"><img class="indicator" src=""></a>&nbsp;<a href="#">Test 2</a>
            <ul>
                <li id="m2_1">
                    <a href="#" class="toggle"><img class="indicator" src=""></a>&nbsp;<a href="#">Test 2.1</a>
                    <ul>
                        <li id="m2_1_1"><img class="indicator" src="">&nbsp;<a href="#">Test 2.1.1</a></li>
                        <li id="m2_1_2"><img class="indicator" src="">&nbsp;<a href="#">Test 2.1.2</a></li>
                        <li id="m2_1_3"><img class="indicator" src="">&nbsp;<a href="#">Test 2.1.3</a></li>
                    </ul>
                </li>
                <li id="m2_2"><img class="indicator" src="">&nbsp;<a href="#">Test 2.2</a></li>
                <li id="m2_3"><img class="indicator" src="">&nbsp;<a href="#">Test 2.3</a></li>
            </ul>
        </li>
    </ul>

</body>
</html>
Avatar billede krk Nybegynder
14. november 2005 - 11:21 #10
okay, tak
Jeg vil tage et kig på det
Avatar billede softspot Forsker
14. november 2005 - 11:24 #11
Ja, det kan være du kan se lyset i nogle af teknikkerne... og tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester