Avatar billede stuf99 Nybegynder
29. januar 2009 - 08:54 Der er 2 kommentarer og
1 løsning

Menu i liste

Hej
Jeg har en side hvor jeg har en tabel med data. Jeg vil gerne udfra hver række have et ikon. Klikker jeg på det skal det komme en lille menu hvor man kan enten vælge vis/ret/slet.

Kender nogen til noget script jeg kan bruge. Jeg har kigget lidt i jquery, men der lader kun til at være de almindelige top og sidemenuer, ingen menuer til et såkaldt grid.
Avatar billede tjens Nybegynder
01. februar 2009 - 20:29 #1
Lille demo herunder.

Funktionerne bag ret og slet knap er bare for illustrationens skyld; dem har du sikkert din egen kode til.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TextDiv  display </title>
<style>

    body {
        font:100% sans-serif;
    }

    .editLink  {
        cursor: pointer;
    }
    .t1 {
        border-collapse: collapse;
    }
    td {
        padding: 2px 4px 2px 4px ;
    }

    #PopMenuID{
        position: absolute;
        height:100px;  width:100px; 
        border: 2px outset grey;
        padding: 2px 2px 2px 5px;
        background-color: lightyellow;
        display: none;
        z-index: 100;
    }

</style>

<script type="text/javascript">

    //Global vars:
    var oPopMenu;
    var oRows;
    var row;

    function popMenu(span) {
        resetRowColor();
        row = span.parentNode.parentNode;
        row.style.backgroundColor = "lightyellow";
        oPopMenu.style.left = (span.parentNode.offsetLeft + 30) + "px";
        oPopMenu.style.top = (span.parentNode.offsetTop +10)  + "px";
        oPopMenu.style.display = 'block';

    }
   
    function resetRowColor() {
        for (var i = 0; i < oRows.length; i++) {
            oRows[i].style.backgroundColor = "white";
        }

    }

    function popMenuClose() {
        oPopMenu.style.display = 'none';

    }

    function doDelete() {
        row.parentNode.removeChild(row);
        popMenuClose();
    }
    function doEdit() {
        var oTDs = row.getElementsByTagName("TD");
        for (var i = 0; i < oTDs.length-1; i++) {
            var value = oTDs[i].firstChild.nodeValue;
            var oInp = document.createElement("input");
            oInp.value = value ;
            oInp.size = value.length;
            oTDs[i].removeChild(oTDs[i].firstChild);
            oTDs[i].appendChild(oInp);
        }
        popMenuClose();
    }

    window.onload = function() {
        oPopMenu = document.getElementById("PopMenuID");
        oPopMenu.style.display = 'none'
        oRows =    document.getElementById("demoTable").getElementsByTagName("TR");
    }
   
</script>
</head>
<body>
<table id="demoTable" class="t1" border="1">
    <tr>
        <th>Aaa</th>
        <th>Bbb</th>
        <th>Ccc</th>
        <th>Edit</th>
    </tr>
    <tr>
        <td>1:1</td>
        <td>1:2</td>
        <td>1:3</td>
        <td> <span class="editLink" onmouseover="popMenu(this)"  >E</span></td>
    </tr>
    <tr>
        <td>2:1</td>
        <td>2:2</td>
        <td>2:3</td>
        <td> <span class="editLink" onmouseover="popMenu(this)" >E</span></td>
    </tr>
    <tr>
        <td>3:1</td>
        <td>3:2</td>
        <td>3:3</td>
        <td> <span class="editLink" onmouseover="popMenu(this)" >E</span></td>
    </tr>
</table>
<div id="PopMenuID" >
    <input type="button" value="X" onclick="popMenuClose(); resetRowColor(); return false;"  style="float:right;"><br><br>
    <input type="button" value=" Edit " onclick="doEdit(); return false;" ><br>
    <input type="button" value=" Delete " onclick="doDelete(); return false;" >
</div>
</body>
</html>
Avatar billede stuf99 Nybegynder
16. september 2010 - 07:19 #2
@tjens: Vil du have point så læg et svar, jeg fik aldrig vendt tilbage, beklager!
Avatar billede tjens Nybegynder
17. september 2010 - 19:46 #3
OK
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