Avatar billede budda Nybegynder
27. november 2002 - 13:41 Der er 10 kommentarer og
1 løsning

Mange layers der skal sorteres

Hej Xperter...
Jeg har et lidt sjovt spørgsmål.
Jeg har 2 frames
1. menu
2. frame-show

i menu er skal der være 4 knapper, som jeg vil forklare om senere

i frame-show er der en masse layers som skal have en "type" som enten kan være 1 eller 2.

Jeg vil med de 3 knapper i menu framen sortere de mangelayers.
Og frame-show må IKKE reloade..
da jeg flusher fra en MySQL database.

Nå men jeg skal nok fortælle om knapperne i menuen.
den første skal vise ALLE layersne.

Den anden knap så skal man kun se dem med type 1

og ved knap nummer 3 skal man se dem med type 2 (layers)

Det kommer et nyt layer hvert sek og derfor skal scriptet være "aktivt" så hvis man har trykket på knap 3 og der kommer et layer med type 1 så skal den "skjule" layeret til man vi se det.

Håber i forstår...
Avatar billede Slettet bruger
27. november 2002 - 14:23 #1
Jeg forstår ikke helt fremgangsmåden. Hvordan kan der komme et nyt lag hvert sekund?

Umiddelbart kan du give alle lagene end id, hvor typen indgår fx:

<div id="type1_1"></div>
<div id="type1_2"></div>
<div id="type2_1"></div>

osv.
Derefter kan du bruge dette script i din menu:

<script>
function visLag(nr) {
divs = document.getElementsByTagName("div");
for (i = 0; i < divs.length; i++)
divs[i].style.visibility = (divs[i].id.indexOf("type" + nr) == 0) ? "visible" : "hidden";
}
</script>

Og så bruge:

<a href="#" onClick="visLag(2); return false;">Vis alle type 2 lag</a>
Avatar billede Slettet bruger
27. november 2002 - 14:23 #2
Og for at se alle lag skriver du bare:

<a href="#" onClick="visLag(''); return false;">Vis alle lag</a>
Avatar billede budda Nybegynder
27. november 2002 - 17:08 #3
Det er fordi jeg vil bruge det til en chat...
og der bliver automatisk tilføjet et nyt layer hvert sek..

Men jeg kan ikke få din ide til at virke
Avatar billede Slettet bruger
27. november 2002 - 17:25 #4
Smid et link (hvor du har forsøgt at få mit til script tik at virke).
Avatar billede budda Nybegynder
27. november 2002 - 18:11 #5
Avatar billede Slettet bruger
28. november 2002 - 11:43 #6
Ups, jeg glemte lige det med frames:

function visLag(nr) {
divs = parent.frames["frameNavn"].document.getElementsByTagName("div");
for (i = 0; i < divs.length; i++)
divs[i].style.visibility = (divs[i].id.indexOf("type" + nr) == 0) ? "visible" : "hidden";
}
Avatar billede Slettet bruger
28. november 2002 - 11:45 #7
Det er i øvrigt også ulovligt at have flere elementer med samme id på en side. Kald dine divs "type1a", "type1b", osv.
Avatar billede budda Nybegynder
28. november 2002 - 18:05 #8
Der er et problem..
Den laver et mellem rum...
DVS.
når man eks vil se type2
så står der:
<linjeskift>
<linjeskift>
3

og der skulle kun stå:
3
Avatar billede Slettet bruger
30. november 2002 - 12:50 #9
OK, så:

function visLag(nr) {
divs = parent.frames["frameNavn"].document.getElementsByTagName("div");
for (i = 0; i < divs.length; i++)
divs[i].style.display = (divs[i].id.indexOf("type" + nr) == 0) ? "block" : "none";
}
Avatar billede budda Nybegynder
30. november 2002 - 20:11 #10
Du har fortjent pointsene!
Men for 10points mere vil du så lave så når man trykker på et af de links så laver funktionen sådan at den side man vil se layerne så scroller siden helt ned i bunden (50000 pixel :) ??
Avatar billede Slettet bruger
01. december 2002 - 11:54 #11
Prøv:

function visLag(nr) {
divs = parent.frames["frameNavn"].document.getElementsByTagName("div");
for (i = 0; i < divs.length; i++)
divs[i].style.display = (divs[i].id.indexOf("type" + nr) == 0) ? "block" : "none";
parent.frames["frameNavn"].scrollTo(0, 99999999);
}

Og jeg skal ikke have flere point for den smule (hvis det da virker)! :)
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