Permalänk
Medlem

Show/Hide knapp på hemsida

Sökte lite på forum efter någon som undrade något liknande som mig, hittade dock inget. Så om det är någon som har ställt samma fråga tidigare så får jag be om ursäkt i första hand.

Jag håller på med lite enkel webdesign/xhtml-kodning, är rätt så mycket nybörjare men kan väl lite enklare saker, men min fundering är hur jag ska kunna få en "Show/Hide" knapp på hemsidan. Antar att jag skulle kunna göra en länk som sedan bara skulle kunna visa, men jag vill att den ska kunna dölja texten igen också.
Jag måste kanske t.o.m. måste gå och skapa i php för att få allt att funka som jag vill ha det?
Hoppas jag inte var allt för otydlig.

Tack på förhand.

Permalänk
Medlem

Javascript funkar

<script type="text/javascript"> function toggleLayer(whichLayer) { if (document.getElementById) { // this is the way the standards work var style2 = document.getElementById(whichLayer).style; style2.display = style2.display? "":"block"; } else if (document.all) { // this is the way old msie versions work var style2 = document.all[whichLayer].style; style2.display = style2.display? "":"block"; } else if (document.layers) { // this is the way nn4 works var style2 = document.layers[whichLayer].style; style2.display = style2.display? "":"block"; } } </script>

Sen kör du bara:

<a href="javascript:toggleLayer('minDiv');">Visa / dölj</a> <div id="minDiv"> Text som ska gömmas/tas fram! </div>

Funkar smidigt och bra.

EDIT: Om en textlänk inte passar in i designen så kan du ju köra med bilder eller vad som helst, bara du länkar till "javascript:toggleLayer('minDiv');" , "OnClick"-attributen fungerar också.

Exempelvis: <img src="minbild" OnClick="javascript:toggleLayer('minDiv');" />

Visa signatur

Min signatur, inte din, MIN.
Bort med tassarna O.o

Permalänk
Medlem

Jag rekommenderar jQuery även till detta, då vet du att det fungerar i alla webbläsare och det blir enklare för dig att lägga på mer funktionalitet. Det enda du behöver göra är att ladda ner senaste jquery.min.js från http://jquery.com/ och lägga in den i din katalog. Lägg till <script type="text/javascript" src="jquery.min.js"></script> inuti din <head> och så använder du jQuery såhär:

<a href="#" onclick="$('#entext').toggle();return false;">Klicka här för att toggla texten</a> <div id="entext"> En text </div>

Permalänk
Medlem

Fast det är att rekommendera att inte attacha eventsen direkt i din html-kod.

jQuery(document).ready(function() { jQuery('#linkId').live('click', function() { jQuery('#divId').toggle(); return false; }); });

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Wishie
Fast det är att rekommendera att inte attacha eventsen direkt i din html-kod.

jQuery(document).ready(function() { jQuery('#linkId').live('click', function() { jQuery('#divId').toggle(); return false; }); });

Man bör även fundera lite på hur besökare utan JavaScript ska kunna se texten, vill man ha den dold från början bör man kanske dölja den med JS också.

Permalänk
Medlem

Japp, då har du en hållbar lösning.

Permalänk
Medlem

Det de ovan pratar om är att skilja helt och hållet på HTML, CSS och JavaScript. Att det skulle vara så mycket bättre att attacha events från JS istället för inline när det är såhär enkelt exempel (och länken dessutom inte gör annat än att visa/dölja ett element) håller jag inte med om. Det är nog bara kosmetika och/eller ideologi bakom den slutsatsen. Men om man vill gör man alltså såhär:

<div id="toggleMe">En text</div> <a href="#" id="toggleLink">Visa/dölj element</a> <script type="text/javascript"> $(document).ready(function(){ $('#toggleMe').hide(); // dölj diven när sidan laddas $('#toggleLink').click(function(){ $('#toggleMe').toggle(); }); }); </script>

Permalänk
Medlem

Okej, ska pilla lite och se vad som händer.
Tackar så mycket!