Avatar billede larsbb Nybegynder
26. april 2008 - 18:50 Der er 11 kommentarer og
1 løsning

CSS: Gør et link inaktivt

Hej,

Jeg har oprettet nogle classes på nogle anchor-tags og jeg vil gerne fra tid til anden sørge for at det ikke er muligt at trykke på linket. Er det noget der kan lade sig gøre i sit stylesheet? Jeg vil nemlig gerne undgå at slette selve linket i HTML-filen, da det vil give en masse besvær.

//Lars
Avatar billede w13 Novice
26. april 2008 - 18:53 #1
Nej, det kan på ingen måde lade sig gøre med CSS. Det kan dog gøres ved at sætte en onclick="return false" direkte på linket, hvilket jo er JavaScript i en HTML-attribut.
Avatar billede olebole Juniormester
29. april 2008 - 01:37 #2
<ole>

Du kan bruge et script:

<script type="text/JavaScript">
window.onload = function() {
    var o, aA = document.getElementsByTagName("a");
    for (var i=aA.length-1; i>=0; i--) {
        if (aA[i].className!="dinCssKlasse") continue;
        o = aA[i].firstChild.cloneNode(true);
        aA[i].parentNode.replaceChild(o, aA[i]);
        aA[i] = null;
    }
}
</script>

/mvh
</bole>
Avatar billede larsbb Nybegynder
29. april 2008 - 11:48 #3
Ole:

Det lyder lovende, men jeg kan ikke helt få det til at spille. Jeg har skrevet:

<script type="text/JavaScript">
window.onload = function() {
    var o, aA = document.getElementsByTagName("a");
    for (var i=aA.length-1; i>=0; i--) {
        if (aA[i].link!="link") continue;
        o = aA[i].firstChild.cloneNode(true);
        aA[i].parentNode.replaceChild(o, aA[i]);
        aA[i] = null;
    }
}
</script>

Har også prøvet nogle enkelte andre kombinationer, men uden held. Jeg er knap så skarp indenfor javascript, så det er sikkert bare her fejlen ligger.
Avatar billede w13 Novice
29. april 2008 - 12:02 #4
Hvordan virker det ikke?
Avatar billede roenving Novice
29. april 2008 - 13:37 #5
.link, hvad er det på et a-tag ?-)

-- ideen i oles script er, at du kun skal disable links med en bestemt property, her illustreret med at det er en bestemt css-klasse (hvis der kan være flere klasser på dine links, skal det lige omskrives en anelse !-)
Avatar billede larsbb Nybegynder
29. april 2008 - 17:16 #6
Jeg har kun en class og den hedder i eksemplet her link.

Jeg har prøvet med flere kombinationer, da jeg ikke var sikker på hvad der skulle erstattes af hvad:

if (aA[i].className!="link") continue;
if (aA[i].link!="link") continue;
if (aA[i].className!="a.link") continue;
if (aA[i].link!="a.link") continue;

Hvor er det jeg falder af vognen?
Avatar billede w13 Novice
29. april 2008 - 17:29 #7
Det burde være:
if (aA[i].className!="link") continue;
ja.
Avatar billede larsbb Nybegynder
29. april 2008 - 20:43 #8
Jeg må have lavet en tastefejl. Det virker i hvert fald nu. Ole, kom med et svar.
Avatar billede olebole Juniormester
29. april 2008 - 23:02 #9
- gerne  ;o)
Avatar billede olebole Juniormester
30. april 2008 - 22:36 #10
Tak for points  ;o)
Avatar billede larsbb Nybegynder
01. maj 2008 - 12:56 #11
Det er mig der takker!
Avatar billede olebole Juniormester
03. maj 2008 - 22:19 #12
Faktisk var roenving inde på noget i (29/04-2008 13:37:52). Har du klasse angivelser, der ser sådan ud: class="noget link", class="link noget" eller class="noget link andet", vil scriptet ikke virke. I stedet for:
    if (aA[i].link!="link") continue;

- skulle du så skrive:
    if ( ! /\blink\b/.test(aA[i].className) ) continue;
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