Avatar billede sonic666 Novice
23. januar 2008 - 15:52 Der er 8 kommentarer og
1 løsning

Skjul eller vis tabel eller tabel-row

Er ved at lave en venstre-menu til en hjemmeside.
Den indeholder et par hovedpunkter, hver med dertil hørende underpunkter.

Hovedpunkt 1
- underpunkt 1
- underpunkt 2
- underpunkt 3

Hovedpunkt 2
- underpunkt 4
- underpunkt 5
- underpunkt 6

Hovedpunkt 3
- underpunkt 7
- underpunkt 8
- underpunkt 9

Som default vises kun hovedpunkterne. Tanken var at man skulle kunne folde underpunkterne for et hovedpunkt ud, ved at klikke på hovedpunktet.
Kan jeg løse det uden at loade en ny fil. Altså vise eller skjule nogle tabeller eller tabel-rows via et link?
Avatar billede Slettet bruger
23. januar 2008 - 15:55 #1
Jeg har lavet det ved at lave hele menu strukturen i lister indeni lister og så smidt noget javascript på som folder det hele sammen.

Selv om OleBole ikke kan lide det, så er jquery ganske god til dette.
Avatar billede sonic666 Novice
23. januar 2008 - 15:59 #2
kan du vise mig det?
Avatar billede Slettet bruger
23. januar 2008 - 16:40 #3
Lav en liste med lister inden i lister, giv den yderste id'en 'sitemap' (f.eks.), desuden forventes det at punktet som har underpunkter har en href som ender på # (dette kan man også programmere sig udenom)

Så skulle følgende kunne gøre det (smides i headeren)

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

<script type="text/javascript">
// sjkul underpunkterne når javascript aktivt
    document.write("<style type=\"text/css\">\#sitemap li ul { display:none; }</style>");

function enableClickableMenu() {
    $("#sitemap").find("ul").hide();
    $("#sitemap").find("a[href$=#]").click(
    function() {
        var X = $(this).parent().children("ul");
        $(this).parent().parent().find("ul").not(X).hide();
        $(this).parent().children("ul").toggle();
        return false;
    }
    );
}

$(document).ready(function() {
    enableClickableMenu();
});

</script>

jquery kan frit downloades på nettet
Avatar billede olebole Juniormester
23. januar 2008 - 23:43 #4
<ole>

<style type="text/css">
#menu {
    width: 140px;
}
#menu div {
    color: #000;
    background: #ededed;
}
#menu, #menu ul {
    font: 12px/1.2em tahoma, arial, sans-serif;
    list-style: none;
    padding: 0;
    margin: 0;
    cursor: default;
}
#menu ul {
    padding-left: 20px;
    display: none;
    background: #cccccc;
}

#menu li a, #menu li a:visited {
    height: 1.4em;
    padding: 1px 5px 0 10px;
    display: block;
    text-decoration: none;
    color: #000;
    background: #efefef;
}
#menu li a:hover, #menu li a:active {
    text-decoration: none;
    color: #f0f0f0;
    background: #666666;
}

#menu li a.head, #menu li a.head:visited {
    height: 1.4em;
    padding: 1px 5px 0 10px;
    display: block;
    text-decoration: none;
    color: #000;
    background: #dedede;
}
#menu li a.head:hover, #menu li a.head:active {
    text-decoration: none;
    color: #f0f0f0;
    background: #999999;
}
</style>

<script type="text/JavaScript">
var oActMenu = null;
function toggleItem(e) {
    e = e ? e : window.event;
    var oSrcElm = e.srcElement ? e.srcElement : e.target;
    var oThisSub = oSrcElm.parentNode.getElementsByTagName("ul")[0];
    if (oActMenu) {
        if (oActMenu==oThisSub) return;
        oActMenu.style.display = "none";
    }
    oActMenu = oThisSub;
    var css = oActMenu.style;
    css.display = css.display!="block" ? "block" : "none";
    oSrcElm.blur();
    if (e.stopPropagation) e.stopPropagation();
    if (e.preventDefault) e.preventDefault();
    e.cancelBubble = true;
    e.returnValue = false;
}
window.onload = function() {
    var aHeads = document.getElementById("menu").getElementsByTagName("a");
    for (var i=0,j=aHeads.length; i<j; i++) {
        if (aHeads[i].className!="head") continue;
        if (aHeads[i].attachEvent) aHeads[i].attachEvent("onclick", toggleItem);
        else if (aHeads[i].addEventListener) aHeads[i].addEventListener("click", toggleItem, false);
        else aHeads[i].onclick = toggleItem;
    }
}
</script>

<ul id="menu">
    <li><a href="#" class="head">Punkt 1</a>
        <ul>
            <li><a href="side1_1.html">Punkt 1.1</a></li>
            <li><a href="side1_2.html">Punkt 1.2</a></li>
            <li><a href="side1_3.html">Punkt 1.3</a></li>
            <li><a href="side1_4.html">Punkt 1.4</a></li>
        </ul>
    </li>
    <li><a href="#" class="head">Punkt 2</a>
        <ul>
            <li><a href="side2_1.html">Punkt 2.1</a></li>
            <li><a href="side2_2.html">Punkt 2.2</a></li>
            <li><a href="side2_3.html">Punkt 2.3</a></li>
        </ul>
    </li>
    <li><a href="#" class="head">Punkt 3</a>
        <ul>
            <li><a href="side3_1.html">Punkt 3.1</a></li>
            <li><a href="side3_2.html">Punkt 3.2</a></li>
            <li><a href="side3_3.html">Punkt 3.3</a></li>
            <li><a href="side3_4.html">Punkt 3.4</a></li>
            <li><a href="side3_5.html">Punkt 3.5</a></li>
        </ul>
    </li>
    <li><a href="#" class="head">Punkt 4</a>
        <ul>
            <li><a href="side4_1.html">Punkt 4.1</a></li>
            <li><a href="side4_2.html">Punkt 4.2</a></li>
            <li><a href="side4_3.html">Punkt 4.3</a></li>
        </ul>
    </li>
</ul>

/mvh
</bole>
Avatar billede olebole Juniormester
23. januar 2008 - 23:49 #5
- njaahhh  :)

function toggleItem(e) {
    e = e ? e : window.event;
    var oSrcElm = e.srcElement ? e.srcElement : e.target;
    var oThisSub = oSrcElm.parentNode.getElementsByTagName("ul")[0];
    if (oActMenu!=oThisSub) {
        if (oActMenu) oActMenu.style.display = "none";
        oActMenu = oThisSub;
        var css = oActMenu.style;
        css.display = css.display!="block" ? "block" : "none";
    }
    oSrcElm.blur();
    if (e.stopPropagation) e.stopPropagation();
    if (e.preventDefault) e.preventDefault();
    e.cancelBubble = true;
    e.returnValue = false;
}
Avatar billede sonic666 Novice
05. februar 2008 - 14:15 #6
der er ikke mulihed for at lave noget tilsvarende i tabeller?
Avatar billede olebole Juniormester
06. februar 2008 - 01:15 #7
Hvorfor tabeller?
Avatar billede sonic666 Novice
08. februar 2008 - 08:36 #8
øhhh syntes bare det er lettere at formatere. spacing, border osv. Måske bare mig der ik er så vant til lister
Avatar billede sonic666 Novice
24. april 2008 - 11:20 #9
nåh men det virker jo så tak for det
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