webForumDet fria alternativet

Modifiera visa-dölj-script

13 svar · 619 visningar · startad av silfver

silfverMedlem sedan apr. 20039 709 inlägg
#1

Tjena vad mycket frågor det är kring de här scripten alltså. :D Så jag tänkte jag slänger upp en till.

Jag har följande kod:

function visa(layer) {
	if(layer.style.display=='none'){
		layer.style.display='block';
	} else {
		layer.style.display='none';
	}
}

Jag skulle vilja göra så att den här koden både kan öppna och stänga ett lager. Som det är nu så kan den bara öppna den.

Några förslag? :)

nitro2k01Medlem sedan aug. 20037 630 inlägg
#2

Titta i tråden precis under: http://www.webforum.nu/showthread.php?t=153354
Jag antar att felet beror på att du inte kan klicka på ett dolt lager? Lösningen är att ha en länk bredvid. Läste inte noga.
Kan du posta lite mer kod?

Mattias NordinMedlem sedan dec. 20051 046 inlägg
#3

Hej moderatorer!

Det var ett tag sedan jag såg jojoxx på forumet. Själv använder jag flitigt hans olika "layer"-relaterad funktioner;

http://www.jojoxx.net/jscript/libs/#layerlib

silfverMedlem sedan apr. 20039 709 inlägg
#4

nitro2k01 skrev:

Titta i tråden precis under: http://www.webforum.nu/showthread.php?t=153354
Jag antar att felet beror på att du inte kan klicka på ett dolt lager? Lösningen är att ha en länk bredvid. Läste inte noga.
Kan du posta lite mer kod?

Jag tittade på det scriptet tidigare. Anledningen till att jag inte ville använda det var för att jag även har ett script som sparar en kaka ifall man klickar på länken. Men å andra sidan så kanske jag inte behöver en kaka som sparar den divven öppen eller stängd...

Jag har ingen mer kod att posta - scriptet ser ju ut sådär. Du kanske menar lite html...?

function visa(layer) {
	if(layer.style.display=='none'){
		layer.style.display='block';
	} else {
		layer.style.display='none';
	}
}
<a href="#" onclick="visa(document.getElementById('test'))">Visa</a>
<div id="test" style="display: none;">
wie.
</div>
Mattias NordinMedlem sedan dec. 20051 046 inlägg
#5

Koden nedan kör jag på en av mina websidor för att visa eller dölja ett lager med samma funktion.

<script language="javascript"> 
// LAGERHANTERINGEN
<!-- 
var state = 'none'; 
function showhide(layer_ref) { 
if (state == 'block') { 
state = 'none'; 
} 
else { 
state = 'block'; 
} 
if (document.all) { //IS IE 4 or 5 (or 6 beta) 
eval( "document.all." + layer_ref + ".style.display = state"); 
} 
if (document.layers) { //IS NETSCAPE 4 or below 
document.layers[layer_ref].display = state; 
} 
if (document.getElementById &&!document.all) { 
hza = document.getElementById(layer_ref); 
hza.style.display = state; 
} 
} 
//--> 
</script> 

<br>
<div id="div1" style="display: none;">
	<font size=1 face=verdana color=gray>
	<div class=textJustify>
	Välkommen till mitt arkiv med trailers på kända hollywood filmer. I arkivet har jag förnärvarande <b><%=varNumberOfMovies%> stycken trailers</b>.
	<br>Har du en filmtrailer som jag saknar? Hör i så fall av dig så blir jag jätteglad.
	<br clear=all>
	</div>
	</font>
</div>
<div id="div2" style="display: none;">
	<font size=2 face=tahoma color=gray>
	<div class=textJustify>
	<b><font color=red>DU har inte QuickTime installerat på din dator!</font></b> Det är ett av det absolut bästa programmen för att visa film. QuickTime 
	är dessutom nödvändigt för att få se mitt biblotek av trailers på kända filmer. 
	<br clear=all>
	</div>
	<center><br><a href="http://www.apple.com/quicktime/download/standalone.html"><img border=0 src="/free_download.gif"></a></center>
	</font>
</div>
	
<script language="javascript"> 
if (haveqt == true){ 	 
showhide("div1") // Visar lager 1
}
else {
showhide("div2") // Visar lager 2
}
</script>

RED 11:33 - Försökte att minimera koden ovan för att inte riskera att förstöra era ögon men det gick inte att göra mindre en så här. Titta på den på egen risk! :moose

@ndersMedlem sedan juni 200026 914 inlägg
#6

Mattias Nordin skrev:

Koden nedan kör jag på en av mina websidor för att visa eller dölja ett lager med samma funktion.

http://www.webforum.nu/showthread.php?p=1279536#post1279536

Mattias NordinMedlem sedan dec. 20051 046 inlägg
#7

Japp. Det var säkert därifrån den kom. Webforum är en underbar informationskälla. Leve webforum :)

@ndersMedlem sedan juni 200026 914 inlägg
#8

Japp. Det var säkert därifrån den kom.

Öh, varifrån?

Webforum är en underbar informationskälla.

Jepp, därför har du ändrat din kod enl. nitros förslag, så slipper du visa upp det där hemska kodstycket igen? :)

JosefMedlem sedan mars 20023 123 inlägg
#9

@nders skrev:

Japp. Det var säkert därifrån den kom.

Öh, varifrån?

Inlägget ovanför det du länkade till? ;)

Mattias NordinMedlem sedan dec. 20051 046 inlägg
#10

Nej jag har inte ändrat min kod då den, trots att den är ful, så fungerar den för mitt ändamål. Men visst är Nitros förslag vackert och om min hemsida vore seriös så kanske koden också borde vara det, men så är inte fallet :)

Jag noterade bara att det jag postade såg likadant ut som det som wally postade. Vi kanske båda hade hittat det från en okänd extern källa. Mins ej.

PS Att markera @nders inlägg som slutgiltigt svar är nog en bra ide DS

Jobbar du natt? Du verkar vara aktiv 24 timmar om dygnet :)

@ndersMedlem sedan juni 200026 914 inlägg
#11

Josef skrev:

Inlägget ovanför det du länkade till?

Öh...

Själva utgångspunkten är ju att det scriptet inte fungerar som det ska, så varför skulle mattias ta koden därifrån? Dessutom tyder "Koden nedan kör jag på en av mina websidor " på att mattias har använt koden längre än en timme eller två...

Ni kollrar bort mig. Ståndpunkten är iaf: använd inte den sortens bövelkod, utan lyssna mer på nitro.

@ndersMedlem sedan juni 200026 914 inlägg
#12

mattias skrev:

Nej jag har inte ändrat min kod då den, trots att den är ful, så fungerar den för mitt ändamål.

Ok, gör oss då åtminstone tjänsten att aldrig visa upp den för någon igen. Aldrig någonsin. :)

Mattias NordinMedlem sedan dec. 20051 046 inlägg
#13

Jag får erkänna att jag inte är någon kung på javascript så jag är glad när det fungerar. Men @nders ,jag lovar att jag ska hjälpa till att hitta den som skrev koden jag använde. [ler]

silfverMedlem sedan apr. 20039 709 inlägg
#14

Jag använder nitros kod:

function showhide(id){
    var lref=document.getElementById(id).style;
    lref.display=(lref.display=='none')?'':'none';
}

Jag vill att en kaka ska sparas så att man slipper öppna diven varje gång sidan laddas om. Och när man klickar på länken igen så ska kakan dödas, går det att ordna smidigt?

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb