Avatar billede supermand69 Nybegynder
20. december 2003 - 19:50 Der er 27 kommentarer og
1 løsning

function med array

hvad er der galt her??

var expand = new array();

function thread_expand(thread)
{
    expand[thread] = true;
   
    var img = 'img'+thread;
    var div = 'div'+thread;
    var td = 'td'+thread;
   
    if(expand[thread])
    {
        document.getElementById(img).src = 'gfx/forum_thread_open.gif';
        document.getElementById(div).style.display = '';
        document.getElementById(td).style.backgroundImage = "url('gfx/forum_tree.gif')";
        expand[thread] = false;
    }
    else
    {
        document.getElementById(img).src = 'gfx/forum_thread_close.gif';
        document.getElementById(div).style.display = 'none';
        document.getElementById(td).style.backgroundImage = '';
        expand[thread] = true;
    }
}
Avatar billede erikjacobsen Ekspert
20. december 2003 - 20:04 #1
Måske du ikke skal
  expand[thread] = true;
hver gang. Det er lidt svært når du ikke siger hvad der er galt, og kun
viser en smule af koden.
Avatar billede supermand69 Nybegynder
20. december 2003 - 20:11 #2
Avatar billede erikjacobsen Ekspert
20. december 2003 - 20:15 #3
Hvad er der galt?
Avatar billede supermand69 Nybegynder
20. december 2003 - 20:18 #4
når man vil åbne et niveau mere skal man nogle gange trykke flere gange på +
Avatar billede erikjacobsen Ekspert
20. december 2003 - 20:38 #5
Oh det kunne eventuelt ikke have noget at gøre med det jeg foreslog før?
Avatar billede supermand69 Nybegynder
20. december 2003 - 20:42 #6
jeg har prøvet at ændre det.. men så synes jeg slet ikke det virker??
Avatar billede roenving Novice
20. december 2003 - 22:44 #7
var expand = new array();
for(i=0;3>i;i++)expand[i]=true;
Avatar billede roenving Novice
20. december 2003 - 22:45 #8
-- eller 4-5-6 ...
Avatar billede supermand69 Nybegynder
21. december 2003 - 16:23 #9
roenving -->

kan man i stedet ikke gøre sådan her på en eller anden måde??

var expand = new Array();

onclick="expand[1] = true; thread_expand(1);"

---
så man ikke behøver lave den for løkke?
Avatar billede supermand69 Nybegynder
21. december 2003 - 16:41 #10
eller noget i retning af det her?? jeg er sgu ikke så god til javascripts endnu.. :|

<script type="text/javascript">
var expand = new Array();

function thread_expand(thread)
{
    if(expand[1]) expand[1] = false;
    else expand[1] = true;
   
    var img = 'img'+thread;
    var div = 'div'+thread;
    var td = 'td'+thread;
   
    if(expand[thread])
    {
        document.getElementById(img).src = 'gfx/forum_thread_open.gif';
        document.getElementById(div).style.display = '';
        document.getElementById(td).style.backgroundImage = "url('gfx/forum_tree.gif')";
        expand[thread] = false;
    }
    else
    {
        document.getElementById(img).src = 'gfx/forum_thread_close.gif';
        document.getElementById(div).style.display = 'none';
        document.getElementById(td).style.backgroundImage = '';
        expand[thread] = true;
    }
}
</script>

onclick="thread_expand(1);"
Avatar billede roenving Novice
21. december 2003 - 19:47 #11
Joeh, det kan du vel godt ...

  else expand[1] = true;
er dog overflødig !-)
Avatar billede supermand69 Nybegynder
21. december 2003 - 21:21 #12
øv... det virker stadig ikke helt.. nu kan jeg ikke lukke dem igen :|

<script type="text/javascript">
var expand = new Array();

function thread_expand(thread)
{
    if(expand[thread]) expand[thread] = false;
    else expand[thread] = true;
   
    var img = 'img'+thread;
    var div = 'div'+thread;
    var td = 'td'+thread;
   
    if(expand[thread])
    {
        document.getElementById(img).src = 'gfx/forum_thread_open.gif';
        document.getElementById(div).style.display = '';
        document.getElementById(td).style.backgroundImage = "url('gfx/forum_tree.gif')";
        expand[thread] = false;
    }
    else
    {
        document.getElementById(img).src = 'gfx/forum_thread_close.gif';
        document.getElementById(div).style.display = 'none';
        document.getElementById(td).style.backgroundImage = '';
        expand[thread] = true;
    }
}
</script>
Avatar billede roenving Novice
21. december 2003 - 21:26 #13
Ændr her:
    if(expand[thread]) expand[thread] = false;
    else expand[thread] = true;

til:

expand[thread] = !expand[thread];
Avatar billede supermand69 Nybegynder
21. december 2003 - 21:30 #14
det virker stadig ikke?

samme problem
Avatar billede roenving Novice
21. december 2003 - 21:33 #15
function thread_expand(thread)
{
    var img = 'img'+thread;
    var div = 'div'+thread;
    var td = 'td'+thread;
   
    if(expand[thread]){
        document.getElementById(img).src = 'gfx/forum_thread_open.gif';
        document.getElementById(div).style.display = '';
        document.getElementById(td).style.backgroundImage = "url('gfx/forum_tree.gif')";
    }
    else{
        document.getElementById(img).src = 'gfx/forum_thread_close.gif';
        document.getElementById(div).style.display = 'none';
        document.getElementById(td).style.backgroundImage = '';
    }
    expand[thread] = !expand[thread];
}
Avatar billede supermand69 Nybegynder
21. december 2003 - 21:38 #16
nu skal man nogle gange trykke flere gange før den åbner eller lukker? :(
Avatar billede roenving Novice
21. december 2003 - 21:40 #17
Prøv at opdatere, så jeg kan prøve !-)
Avatar billede supermand69 Nybegynder
21. december 2003 - 21:48 #18
sådan...
Avatar billede roenving Novice
21. december 2003 - 21:52 #19
var expand = new Array();
for(i=0;7>i;i++)expand[i]=true;

function thread_expand(thread)
{
    var img = 'img'+thread;
    var div = 'div'+thread;
    var td = 'td'+thread;
   
    if(expand[thread]){
        document.getElementById(img).src = 'gfx/forum_thread_open.gif';
        document.getElementById(div).style.display = '';
        document.getElementById(td).style.backgroundImage = "url('gfx/forum_tree.gif')";
    }
    else{
        document.getElementById(img).src = 'gfx/forum_thread_close.gif';
        document.getElementById(div).style.display = 'none';
        document.getElementById(td).style.backgroundImage = '';
    }
    expand[thread] = !expand[thread];
}
Avatar billede supermand69 Nybegynder
21. december 2003 - 21:54 #20
jamen jeg ville gerne være fri for den for-løkke :p

kan det ikke lade sig gøre??
Avatar billede supermand69 Nybegynder
21. december 2003 - 21:56 #21
hvad er det egentlig helt præcist at den her gør:
expand[thread] = !expand[thread];
Avatar billede roenving Novice
21. december 2003 - 21:56 #22
Hvad er der farligt i den !-)

-- og din forespørgsel virker jo ikke, hvis variablen ikke er sat ...
Avatar billede supermand69 Nybegynder
21. december 2003 - 21:59 #23
fordi den er dum :) ej, det ville nemmere hvis værdien expand[thread] kun blev sat når man åbnede tråden...
Avatar billede roenving Novice
21. december 2003 - 21:59 #24
! er javascriptsk for NOT, så den negerer ...

Ellers skulle man skrive:

if(expand[thread]==true)
  expand[thread]=false;
else
  expand[thread]=true;
Avatar billede supermand69 Nybegynder
21. december 2003 - 22:05 #25
jeg tror den virker nu.. man må åbenbart ikke trykke for hurtigt efter hinanden.. så når den åbenbart ikke lige at registrere værdien?
Avatar billede supermand69 Nybegynder
21. december 2003 - 22:07 #26
lav et svar :)
Avatar billede roenving Novice
21. december 2003 - 22:09 #27
Det lyder nu mærkeligt, at der skulle være forskel, fodi tiden går lidt ,-|

Men hvis du er tilfreds, så kan jeg jo kun sige velbekomme '-)
Avatar billede roenving Novice
21. december 2003 - 22:31 #28
-- og tak for points ;~}
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