Avatar billede bongo20 Nybegynder
13. juni 2003 - 10:36 Der er 14 kommentarer og
1 løsning

drag and drop

Hej!

Spørgsmålet ligger næsten i titlen. Jeg aner ikke hvordan man gør,..
vil gerne kunne f.eks. trække et navn fra en liste (textarea måske) over i en anden liste...

Men hvordan kommer  man i gang?
Avatar billede roenving Novice
13. juni 2003 - 10:43 #1
Kig her:
http://www.eksperten.dk/spm/363290
pelkjaer
11/06-2003 10:53:48
Avatar billede bongo20 Nybegynder
13. juni 2003 - 11:28 #2
Det giver faktisk gode eksempler, men jeg mangler lidt et eksempel på 2 der bytter plads
Avatar billede roenving Novice
13. juni 2003 - 11:34 #3
-- det gør jeg også -- endnu !-)
Avatar billede bongo20 Nybegynder
13. juni 2003 - 11:40 #4
er det noget med at gemme objektets position, og så smide det object som bliver overlappet derhen ????????
Avatar billede roenving Novice
13. juni 2003 - 11:42 #5
Du følger de samme tankebaner som jeg gør !O]
Avatar billede bongo20 Nybegynder
13. juni 2003 - 13:06 #6
På det link du sendte laver olebole denne funktion:

function move(e){
if (dragapproved){
z.style.left=ns6? temp1+e.clientX-x: temp1+event.clientX-x
z.style.top=ns6? temp2+e.clientY-y : temp2+event.clientY-y
return false
}
}

Der hvor move() bliver kaldt foregår det uden inputparametre,..hvordan kan det lade sig gøre,.og hvad er e = med ?????????
Avatar billede roenving Novice
13. juni 2003 - 13:19 #7
e er et event-objekt, som altid findes i forbindelse med event-handlers ...

-- i Netscape bliver den (åbenbart) automatisk tilføjet som parameter til en funktion, som reagerer på en event, mens den i IE kaldes ved hjælp af event, som du også kan se i de linjer du kopierede ;o]
Avatar billede bongo20 Nybegynder
16. juni 2003 - 08:06 #8
Kan man ikke trække elementer fra en dropdownbox på samme måde, eller er det bare mig der ikke ved hvordan ?
Avatar billede roenving Novice
16. juni 2003 - 12:08 #9
Det kunne jeg ikke forestille mig, der skulle være noget galt i, men du skal sikkert tage afsæt i en onmouseover på den enkelte option !-)
Se iøvrigt: http://www.w3.org/TR/html401/interact/forms.html#edef-OPTION

hth
jes
Avatar billede bongo20 Nybegynder
16. juni 2003 - 21:24 #10
synes ikke der er noget der,. kan ikke finde noget der gør at jeg kan tage et element fra en dropdownbox og trække væk,...

eller sætte noget ind i dropdownbox´en for den sags skyld
Avatar billede roenving Novice
17. juni 2003 - 08:07 #11
Jeg er ikke selv nået dertil endnu, så der går nok nogle dage inden jeg kan svare fornuftigt ...
Avatar billede bongo20 Nybegynder
17. juni 2003 - 11:44 #12
jeg prøver selv lidt og venter samtidig med spænding :o)
Avatar billede roenving Novice
23. juni 2003 - 20:17 #13
Så har jeg foreløbig noget:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>Byt celler</TITLE>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<META NAME="description" CONTENT="Jes' Turneringsmager - byt kampdage">
<META NAME="keywords" CONTENT="turnering,deltagere,kampe,kampdage">
<META NAME="robots" CONTENT="index,follow">
<META HTTP-EQUIV="Content-Language" CONTENT="da">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<STYLE TYPE="text/css">
.tdname{
border:red 1px solid;
}
.tdkampe{
border:red 1px solid;
}
.dkampe{
background:'url(../transparent.gif)' 400px 25px repeat;
position:relative;
height:25px;
width:400px;
display:block;
}
.fkampe{
position:absolute;
background-color:grey;
border:#7f7f7f 1px dotted;
height:25px;
width:400px;
display:block;
z-index:3;
}
.dname{
background:'url(../transparent.gif)' 100px 25px no-repeat;
position:relative;
height:25px;
width:100px;
display:block;
}
.tdmellemrum{
background:'url(../transparent.gif)';
position:relative;
height:8 px;
font-size:4px;
border:transparent 0px;
}
</STYLE>
<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">
var nede = false;
var x = y = 0;
var stTop = 0;
var stHeight = 0;
var numDivs = 0;
var flytDivs = new Array();

function traek(obj) {
  if (nede) {
  //alert(stTop+"\n"+stHeight+"\n"+event.clientY+"\n"+y+"\n"+""+"\n"+obj.lastElm);
    //obj.style.left = event.clientX - x;
    var newTop = event.clientY - y - 3;
    //first can't move up, last can't move down
    if((newTop<stTop&&obj.num==0)||(newTop>stTop&&obj.num==numDivs)){return false;
    }else{
        //movement only allowed until 60% then a swap occurs
        if(0.6*stHeight>Math.abs(stTop-newTop)){
            obj.style.top = newTop;
            return false;
        }else{
            swapElms(obj,newTop)
          }
    }
  }
}
function swapElms(obj,newTop){
    //Swapping values and relations
  var newNum = oldNum = obj.num;
    if (newTop>stTop)newNum++;
        else newNum--;
  var swap = flytDivs[newNum];
  var newPar = swap.par;
    var newSib = swap.sib;
  swap.par = obj.par;
  swap.sib = obj.sib;
    swap.num = obj.num;
    obj.par = newPar;
  obj.sib = newSib;
    obj.num = newNum;
    flytDivs[oldNum] = swap;
    flytDivs[newNum] = obj;
  swap.sib.innerHTML = obj.sib.innerHTML;
  obj.sib.innerHTML = obj.innerHTML;
    swap.style.top = getPos(swap.par).y;
  stTop = getPos(obj.par).y;
  obj.style.top = stTop;
  alert('Poster byttet rundt!');
}
function getPos(elm) {
    for(var zx=zy=0;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
    return {x:zx,y:zy}
}
function initMove(obj){
    stTop=getPos(obj.par).y;
    stHeight=obj.par.scrollHeight;
    x=event.offsetX;
    y=event.offsetY;
    nede=true;
    obj.innerHTML = obj.sib.innerHTML;
}
function initFlytDiv(){
    var b = document.body;
    for(i=0;document.getElementById("tdkampe"+i);i++){
        //document.body.innerHTML+='<DIV CLASS="fkampe" ID="fkampe'+i+'" onMouseDown="initMove(flytDivs[this.num]);" onMouseUp="nede=false;" onMouseOut="nede=false;" onMouseMove="traek(this);" onSelectStart="return false;" ></DIV>'
        var d = document.getElementById("fkampe"+i);
        var p = document.getElementById("tdkampe"+i);
        d.style.top = getPos(p).y;
        d.style.left = getPos(p).x;
        d.par = p;
        d.sib = document.getElementById("kampe"+i);
        d.num = i;
        flytDivs[i] = d;
        numDivs = i;
    }
}
</SCRIPT>
</HEAD>
<BODY ONRESIZE ONLOAD="initFlytDiv()">
<TABLE CELLPADDING="0" CELLSPACING="0" COLS="2" STYLE="border-collapse:collapse"><!--  STYLE="border:black 1px solid;border-collapse:collapse" -->
    <TR>
        <TD CLASS="tdname" onSelectStart="return false;"><DIV CLASS="dname" ID="dato0">&nbsp;</DIV></TD>
        <TD CLASS="tdkampe" ID="tdkampe0" onSelectStart="return false;"><DIV CLASS="dkampe" ID="kampe0">&nbsp;0</DIV></TD>
    </TR>
    <TR>
        <TD CLASS="tdmellemrum" COLSPAN="2" onSelectStart="return false;">&nbsp;</TD>
    </TR>
    <TR>
        <TD CLASS="tdname" onSelectStart="return false;"><DIV CLASS="dname" ID="dato1">&nbsp;</DIV></TD>
        <TD CLASS="tdkampe" ID="tdkampe1" onSelectStart="return false;"><DIV CLASS="dkampe" ID="kampe1">&nbsp;1</DIV></TD>
    </TR>
    <TR>
        <TD CLASS="tdmellemrum" COLSPAN="2" onSelectStart="return false;">&nbsp;</TD>
    </TR>
    <TR>
        <TD CLASS="tdname" onSelectStart="return false;"><DIV CLASS="dname" ID="dato2">&nbsp;</DIV></TD>
        <TD CLASS="tdkampe" ID="tdkampe2" onSelectStart="return false;"><DIV CLASS="dkampe" ID="kampe2">&nbsp;2</DIV></TD>
    </TR>
    <TR>
        <TD CLASS="tdmellemrum" COLSPAN="2" onSelectStart="return false;">&nbsp;</TD>
    </TR>
    <TR>
        <TD CLASS="tdname" onSelectStart="return false;"><DIV CLASS="dname" ID="dato3">&nbsp;</DIV></TD>
        <TD CLASS="tdkampe" ID="tdkampe3" onSelectStart="return false;"><DIV CLASS="dkampe" ID="kampe3">&nbsp;3</DIV></TD>
    </TR>
    <TR>
        <TD CLASS="tdmellemrum" COLSPAN="2" onSelectStart="return false;">&nbsp;</TD>
    </TR>
    <TR>
        <TD CLASS="tdname" onSelectStart="return false;"><DIV CLASS="dname" ID="dato4">&nbsp;</DIV></TD>
        <TD CLASS="tdkampe" ID="tdkampe4" onSelectStart="return false;"><DIV CLASS="dkampe" ID="kampe4">&nbsp;4</DIV></TD>
    </TR>
    <TR>
        <TD CLASS="tdmellemrum" COLSPAN="2" onSelectStart="return false;">&nbsp;</TD>
    </TR>
    <TR>
        <TD CLASS="tdname" onSelectStart="return false;"><DIV CLASS="dname" ID="dato5">&nbsp;</DIV></TD>
        <TD CLASS="tdkampe" ID="tdkampe5" onSelectStart="return false;"><DIV CLASS="dkampe" ID="kampe5">&nbsp;5</DIV></TD>
    </TR>
    <TR>
        <TD CLASS="tdmellemrum" COLSPAN="2" onSelectStart="return false;">&nbsp;</TD>
    </TR>
    <TR>
        <TD CLASS="tdname" onSelectStart="return false;"><DIV CLASS="dname" ID="dato6">&nbsp;</DIV></TD>
        <TD CLASS="tdkampe" ID="tdkampe6" onSelectStart="return false;"><DIV CLASS="dkampe" ID="kampe6">&nbsp;6</DIV></TD>
    </TR>
</TABLE>
<DIV CLASS="fkampe" ID="fkampe0" onMouseDown="initMove(this);" onMouseUp="nede=false;" onMouseOut="nede=false;" onMouseMove="traek(this);" onSelectStart="return false;" ></DIV>
<DIV CLASS="fkampe" ID="fkampe1" onMouseDown="initMove(this);" onMouseUp="nede=false;" onMouseOut="nede=false;" onMouseMove="traek(this);" onSelectStart="return false;" ></DIV>
<DIV CLASS="fkampe" ID="fkampe2" onMouseDown="initMove(this);" onMouseUp="nede=false;" onMouseOut="nede=false;" onMouseMove="traek(this);" onSelectStart="return false;" ></DIV>
<DIV CLASS="fkampe" ID="fkampe3" onMouseDown="initMove(this);" onMouseUp="nede=false;" onMouseOut="nede=false;" onMouseMove="traek(this);" onSelectStart="return false;" ></DIV>
<DIV CLASS="fkampe" ID="fkampe4" onMouseDown="initMove(this);" onMouseUp="nede=false;" onMouseOut="nede=false;" onMouseMove="traek(this);" onSelectStart="return false;" ></DIV>
<DIV CLASS="fkampe" ID="fkampe5" onMouseDown="initMove(this);" onMouseUp="nede=false;" onMouseOut="nede=false;" onMouseMove="traek(this);" onSelectStart="return false;" ></DIV>
<DIV CLASS="fkampe" ID="fkampe6" onMouseDown="initMove(this);" onMouseUp="nede=false;" onMouseOut="nede=false;" onMouseMove="traek(this);" onSelectStart="return false;" ></DIV>
</BODY>
</HTML>

-- alerten er næsten nødvendig, for ellers sker det uden noget ...

-- prøv det !-)
Avatar billede bongo20 Nybegynder
22. august 2003 - 14:23 #14
lægger du et svar ? :o)
Avatar billede roenving Novice
23. august 2003 - 17:47 #15
Velbekomme '-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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