Avatar billede samuelsen Nybegynder
22. marts 2004 - 10:54 Der er 20 kommentarer og
1 løsning

disabel link

Kære Eksperter!

Jeg har brug for lidt hjælp, jeg har en række links, og nogen gange kun et link (alt afhængig af hvor mange posteringer der er i en database) og når man har klikket på et givent link(og siden er blevet vist i en anden frame), skal dette link blive inaktivt/disabled, det skal det være i enten et antal sekunder eller indtil man klikker på et andet link.

håber på lidt hjælp
Venlig hilsen
Per Samuelsen
Avatar billede samuelsen Nybegynder
22. marts 2004 - 11:18 #1
jeg søger noget i stil med :
if Aktivelink/netop klikkede == det link jeg trykker på nu{ skal INTET ske}

Nogen som har dette et javascript som kan hjælpe?
Avatar billede mm12010 Nybegynder
22. marts 2004 - 11:22 #2
sådan?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>disabel link</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
var sto;
var secs=5;//antal sekunder
function disAble(a){
    clearTimeout(sto);
    as=document.getElementsByTagName("A");
    a.onclick=new Function("return false");
    sto=setTimeout('document.getElementById("'+a.id+'").onclick=new Function("disAble(this); return true;");',1000*secs);
    for(i=0;i<as.length;i++){
        if(as[i]!=a&&a.id.indexOf("link")>-1) as[i].onclick=new Function("disAble(this); return true;");
        }
    }
</script>
</head>
<body>
<a href="java script:alert(this.id);" onclick="disAble(this); return true;" id="link1">link#1</a><br>
<a href="java script:alert(this.id);" onclick="disAble(this); return true;" id="link2">link#2</a><br>
<a href="java script:alert(this.id);" onclick="disAble(this); return true;" id="link3">link#3</a><br>
<a href="java script:alert(this.id);" onclick="disAble(this); return true;" id="link4">link#4</a><br>
<a href="java script:alert(this.id);" onclick="disAble(this); return true;" id="link5">link#5</a><br>
</body>
</html>
Avatar billede mm12010 Nybegynder
22. marts 2004 - 11:27 #3
alle de links der skal have funktionaliteten skal så have et id der begynder med 'link'
Avatar billede samuelsen Nybegynder
22. marts 2004 - 11:43 #4
tak for hjælpen - lidt et sidste spørgsmål, kan jeg disable alle links, i et vist tidsrum fx. 10 sekunder? ved brug af samme script, blot med enkelte ændringer?

vh
Samuelsen
Avatar billede mm12010 Nybegynder
22. marts 2004 - 11:45 #5
_alle_ links? eller kun dem som benytter ovenstående funktion?
Avatar billede samuelsen Nybegynder
22. marts 2004 - 11:48 #6
kan jeg få begge dele??
Avatar billede mm12010 Nybegynder
22. marts 2004 - 13:03 #7
ikke stresstestet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>disabel link</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
var sto, sT;
var secs1=5;//antal sekunder
function disAble(a){
    clearTimeout(sto);
    as=document.getElementsByTagName("A");
    sto=setTimeout('document.getElementById("'+a.id+'").onclick='+a.onclick,1000*secs1);
    for(i=0;i<as.length;i++) if(as[i]!=a&&a.id.indexOf("link")>-1) as[i].onclick=a.onclick;
    a.onclick=new Function("return false");
    }
var secs2=10;//antal sekunder
function disAbleLinks(sel){
    clearTimeout(sT);
    as=document.getElementsByTagName("A");
    for(i=0;i<as.length;i++){
        sT=setTimeout('for(i=0;i<as.length;i++) as[i].onclick='+as[i].onclick,1000*secs2);
        if(sel=="link"&&as[i].id.indexOf("link")>-1) as[i].onclick=new Function("return false;");
        else if(sel=="all") as[i].onclick=new Function("return false;");
        }
    }
</script>
</head>
<body>
<a href="java script:alert(this.id);" onclick="disAble(this); return true;" id="link1">link#1</a><br>
<a href="java script:alert(this.id);" onclick="disAble(this); return true;" id="link2">link#2</a><br>
<a href="java script:alert(this.id);" onclick="disAble(this); return true;" id="link3">link#3</a><br>
<a href="java script:alert(this.id);" onclick="disAble(this); return true;" id="link4">link#4</a><br>
<a href="java script:alert(this.id);" onclick="disAble(this); return true;" id="link5">link#5</a><br><br>
<a href="#">Andet link</a><br>
<a href="#">Andet link</a><br>
<a href="#">Andet link</a><br>
<a href="#">Andet link</a><br>
<a href="#">Andet link</a><br><br>
<input name="all" type="button" value="disable alle" onclick="disAbleLinks('all');"><br>
<input name="all" type="button" value="disable links" onclick="disAbleLinks('link');"><br>
</body>
</html>
Avatar billede mm12010 Nybegynder
22. marts 2004 - 14:49 #8
og så et svar :o)
Avatar billede samuelsen Nybegynder
31. marts 2004 - 11:48 #9
Hej igen! Jeg syntes ikke lige det virker, kun første gang jeg klikker bliver linkene disablet, men en gang sker der ikke noget - altså efter de 10 sec. Desuden så vil jeg gerne kun have de links som er har et id=linkx disablet og ikke alle de andre, kan det lade sig gøre?
Avatar billede mm12010 Nybegynder
31. marts 2004 - 12:01 #10
det må du lige forklare lidt nærmere...
Avatar billede samuelsen Nybegynder
31. marts 2004 - 12:04 #11
Ok - Scriptet virker for sin vis ganske fint første gang jeg klikket på et link. og dernæst er ALLE links disablet i 10 sekunder. Derefter nær jeg så trykker på et link, bliver linkene IKKE inaktive.
Kan det evt. laves sådan, at det kun er links med et id=linkXXX som bliver disablet når der klikkes på en af disse links med id=linkXXX...er det mere klart nu? Eller stil spørgsmål.
Avatar billede mm12010 Nybegynder
31. marts 2004 - 12:10 #12
skal _alle_ links blive inaktive når du har trykket på et link med id="linkX" ?-)
Avatar billede samuelsen Nybegynder
31. marts 2004 - 12:13 #13
nej - kun alle dem med id=linkxx
Avatar billede mm12010 Nybegynder
31. marts 2004 - 12:25 #14
prøv at udskifte disAble(a)-funktionen med:

function disAble(a){
    clearTimeout(sto);
    as=document.getElementsByTagName("A");
    for(i=0;i<as.length;i++){
        aID=setTimeout('for(i=0;i<as.length;i++) as[i].onclick='+as[i].onclick,1000*secs2);
        if(as[i].id.indexOf("link")>-1) as[i].onclick=new Function("return false;");
        }
    }
Avatar billede samuelsen Nybegynder
31. marts 2004 - 12:30 #15
Hej ! Så virker det lidt bedre.....
Nu virker det med at det kun er de links med id=linkxxx som bliver deaktiveret.
Man det virker stadig kun første gang jeg klikker, hvis jeg venter 10sec så virker det hele igen, og ingen links bliver deaktiveret efter klik nr. 2 :-)
Avatar billede mm12010 Nybegynder
31. marts 2004 - 12:44 #16
sådan ?

function disAble(){
    clearTimeout(aID);
    as=document.getElementsByTagName("A");
    for(i=0;i<as.length;i++){
        aID=setTimeout('for(i=0;i<as.length;i++) if(as[i].id.indexOf("link")>-1) as[i].onclick=new Function("disAble(this); return true;")',1000*secs2);
        if(as[i].id.indexOf("link")>-1) as[i].onclick=new Function("return false;");;
        }
    }
Avatar billede samuelsen Nybegynder
31. marts 2004 - 12:47 #17
nej den brokker sig over at aID ikke er defineret....
Avatar billede mm12010 Nybegynder
31. marts 2004 - 12:50 #18
indsæt:
  var aID;
ovenover funktionen
Avatar billede samuelsen Nybegynder
31. marts 2004 - 13:54 #19
PERFEKT! Tak for hjælpen
Avatar billede mm12010 Nybegynder
31. marts 2004 - 13:55 #20
selv tak :o)
Avatar billede samuelsen Nybegynder
13. april 2004 - 10:23 #21
hej igen!
Håber lige du kan hjælpe mig igen...Ang. det script du lavede for mig, så virker det upålæageligt. Dog kunne jeg godt tænke mig at kunne disable de samme links, indtil en given side er blevet hentet/loaded færdig i en anden frame. Kan det lade sig gøre? Denne side skal nemlig hente data ud fra en database, og hvis brugeren hele tiden klikker og sender flere og flere forespørgsler til databasen, tja - så går den ned. Det vil jeg gerne sikre med at disable disse links, så der ikke kan sendes flere forespørgsler før den tidligere er afsluttet/hentet. Håber du forstår og kan hælpe.
Venlig hilsen
Samuelsen
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