Permalänk
Medlem

show and hide

Hej jag har en kod för att visa och gömma innehåll vid klick. Koden fungerar utmärkt men nu vill jag ha in ytterligare en text som ska visas och gömmas. Om jag bara klistrar in samma kod igen fungerar det så klart inte.

Var i koden ändrar jag så att jag kan ha fler /visa/gömma på samma sida?

Tacksam för svar

Koden:

<script type="text/javascript">// <![CDATA[
function showStuff(id) {

document.getElementById(id).style.display = 'block';
}

function hideStuff(id) {
document.getElementById(id).style.display = 'none';
}
function showhideStuff(id) {
document.getElementById(id).style.display = 'none';
var State=document.getElementById('showhide').innerHTML
if (State=='Show')
{
document.getElementById('showhide').innerHTML = 'Hide';
showStuff(id);
}
else
{
hideStuff(id)
document.getElementById('showhide').innerHTML = 'Show';
}
}
// ]]></script>
<a id="showhide" href="javascript:showhideStuff('myDiv');">Show</a></p>
<div id="myDiv" style="display: none;">I'm here!</div>

Permalänk
Medlem
Skrivet av vickan99:

Hej jag har en kod för att visa och gömma innehåll vid klick. Koden fungerar utmärkt men nu vill jag ha in ytterligare en text som ska visas och gömmas. Om jag bara klistrar in samma kod igen fungerar det så klart inte.

Var i koden ändrar jag så att jag kan ha fler /visa/gömma på samma sida?

Tacksam för svar

Koden:

<script type="text/javascript">// <![CDATA[
function showStuff(id) {

document.getElementById(id).style.display = 'block';
}

function hideStuff(id) {
document.getElementById(id).style.display = 'none';
}
function showhideStuff(id) {
document.getElementById(id).style.display = 'none';
var State=document.getElementById('showhide').innerHTML
if (State=='Show')
{
document.getElementById('showhide').innerHTML = 'Hide';
showStuff(id);
}
else
{
hideStuff(id)
document.getElementById('showhide').innerHTML = 'Show';
}
}
// ]]></script>
<a id="showhide" href="javascript:showhideStuff('myDiv');">Show</a></p>
<div id="myDiv" style="display: none;">I'm here!</div>

kan du länka hemsidan.

Visa signatur

NZXT 810 Switch, Corsair AX860i, Maximus V Formula, I7 3770K ,Asus GTX 680, Corsair vengance 1866Mhz 32gb Ram, Samsung 850 Pro 256Gb, Samsung 840 basic 500Gb, WD 2Tb Caviar Green,120GB, Komplett vattenkylning

Permalänk
Medlem

fan, jag skrev dåligt.

funktionen kallas i länken (<a href=javascript:blablabla ...>LÄNK</a>).
innehållet som avses är <div> med ID="myDiv".

om du lägger till en länk som inte skickar myDiv utan istället något annat ID
+
skapar en <div> med id="något annat ID" etc

så kan du lägga till hur många du vill. "id" ger ett unikt namn till din div i det här fallet. och den unika divven kan alltså användas av javaskriptet iochmed att du har kallat funktionen(med ett specifikt ID) genom att man klickar på länken.

[EDIT igen]
<a id="showhide" href="javascript:showhideStuff('myDiv');">Show</a></p>
<div id="myDiv" style="display: none;">I'm here!</div>

dessa kan du ha hur många av som helst, bara du gör så att ID är unika. din länk behöver dessutom inget ID.
[EDIT igen] -eftersom länken ändras från show<->hide beroende på klick så behöver länken ett ID. ska du ha fler länkar får du ha unika Id på dem och lägga till motsvarande mög i koden. enklast är att nesta if om du vet att det bara är 6, men det finns nog elegantare sätt att göra det på.

Visa signatur

enthooEvolvTGlass; MSI-Z97Gaming9-ACK, 4790K, 32GbRAM, samsung840Evo, Intel520-240gb, Kraken-X61, evga980ti ACS2.0+, seasonic660Wplatinum. Sennheiser PC360, SiberiaV2. WACOMbambooA5. SaitekCyborgEVO. XboX1BTcontroller. NAD3020d + B&W 686 S2
+Lenovo thinkpad s540
World of Tanks, Elite:Dangerous (solo), Star Citizen, anything Co-op

Permalänk
Medlem

.

sidan är inte officiell ännu - jag håller på att testa mig fram lite med olika funktioner.

Denna sida skulle då innehålla sex stycken sådana här visa/gömma texter

Jag tror detta är en riktig nybörjarfråga det är förmodligen lättare än jag fattar.

Permalänk
Medlem

Jag skulle rekommendera jQuery för det, enklare och smidigare i min mening.

http://andylangton.co.uk/articles/javascript/jquery-show-hide...

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti

Permalänk
Medlem

Jag gjorde som du sa först men det funkade så klart inte.

Nu är jag så snurrig av detta att jag inte fattar i alla fall ha ha ha.. har hålt på sen sex

Du vore mycket snäll om du kopierade följande och skrev in det du menar på den andra show/hide

<script type="text/javascript">// <![CDATA[
function showStuff(id) {

document.getElementById(id).style.display = 'block';
}

function hideStuff(id) {
document.getElementById(id).style.display = 'none';
}
function showhideStuff(id) {
document.getElementById(id).style.display = 'none';
var State=document.getElementById('showhide').innerHTML
if (State=='Show')
{
document.getElementById('showhide').innerHTML = 'Hide';
showStuff(id);
}
else
{
hideStuff(id)
document.getElementById('showhide').innerHTML = 'Show';
}
}
// ]]></script>
<a id="showhide" href="javascript:showhideStuff('myDiv');">Show</a></p>
<div id="myDiv" style="display: none;">I'm here!</div>
<script type="text/javascript">// <![CDATA[
function showStuff(id) {

document.getElementById(id).style.display = 'block';
}

function hideStuff(id) {
document.getElementById(id).style.display = 'none';
}
function showhideStuff(id) {
document.getElementById(id).style.display = 'none';
var State=document.getElementById('showhide').innerHTML
if (State=='Show')
{
document.getElementById('showhide').innerHTML = 'Hide';
showStuff(id);
}
else
{
hideStuff(id)
document.getElementById('showhide').innerHTML = 'Show';
}
}
// ]]></script>
<a id="showhide" href="javascript:showhideStuff('myDiv');">Show</a></p>
<div id="myDiv" style="display: none;">I'm here!</div>

Permalänk
Medlem

jQuery länken. Jag provade att bara klistra in koden men det blev bara text av allt. Har aldrig sett sådan kod förut... jag kanske är för trött

Permalänk
Medlem

http://jquery.com/

jQuery är ett funtionsbiblotek baserat på javascript.
Du slipper alltså skriva en massa javascript för att utföra enkla funktioner.

Du måste ladda ner jQuery bibloteket och länka den till sidan för att koden ska fungera.

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti

Permalänk
Medlem

jahaaa - oj vad det ser komplicerat ut puuh

Jag har precis lärt mig hur man skriver bold text ha ha ha ha ha (nästan)
Vill egentligen bara byta id eller nåt i min kod men vet inte var eller vilka som ska bytas.

Permalänk
Medlem

Var ska i så fall biblioteket läggas? På ftp?

Permalänk
Medlem
Skrivet av vickan99:

jahaaa - oj vad det ser komplicerat ut puuh

Jag har precis lärt mig hur man skriver bold text ha ha ha ha ha (nästan)
Vill egentligen bara byta id eller nåt i min kod men vet inte var eller vilka som ska bytas.

Det är en vanlig textfil.. lägg den där du vill och länka in den i html dokumentet.

<script type="text/javascript" src="scripts/jquery-1.7.2.min.js"></script>

Javascript är komplicerat, jQuery är enkelt.

enklaste "show/hide" funktionen du kan göra i jquery ser ut så här:

$('#KNAPP').click(function(){ $('#TEXTRUTA').fadeToggle(500); });

live-version av det jag precis skrev:(klicka på "about")
http://www.fredrikw.eu/#

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti

Permalänk
Medlem

"lägg den där du vill och länka in den i html dokumentet"

Ok nu hajar jag inget - hur länkar jag en text in i ett html-dokument? Första gången jag hör talas om jquery så kan ju vara så att jag ska hålla mig kvar i html segmentet där jag ändå kan läsa lite html - detta är rena rapakaljan hi hi

Kan du se var i min kod man ska ändra id?

Ja precis som på länken vill jag ha (fast fler på samma sida)

Permalänk
Medlem

Antar att du inte har kunskap om CSS heller?

Man bör aldrig skriva script i HTML dokumentet, utan det borde skrivas i en separat fil som länkas in i ditt HTML dokument via header tagar.

Som exempel nedan länkar jag in "scripts" filen för sig själv, så att det det inte blir stökigt i html filen.

<head> <title>tittle</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="css/style.css"> <script type="text/javascript" src="scripts/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="scripts/scripts.js"></script> </head>

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti