/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Vis/skjul element
Fra : Danny Bahl


Dato : 01-08-07 20:21

Hvad går galt her?

Jeg forstår ikke JS, og ham der har hjulpet mig med det har ydet
meget. Men jag kan bare ikke få det crap til at virke.

Scriptet står ikke i head'en. Der er ikke noget CSS på id'et.

<script type="text/javascript">
function visElement('stilling07') {
if document.getElementById('stilling07').style.display=="block"){
document.getElementById('stilling07').style.display="none";
}
else {
document.getElementById('stilling07').style.display="block";}
}
}
</script>

<a href="#" onclick="visElement('stilling07');return false;">Vis
element</a>

<div id="stilling07" style="display:none;">
<table width="390px" border="1">

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Lasse Reichstein Nie~ (02-08-2007)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 02-08-07 05:09

Danny Bahl <dannybahl@hotmail.com> writes:

> Hvad går galt her?

Syntaxfejl.

> <script type="text/javascript">
> function visElement('stilling07') {

Skulle være, fx:

function visElement(id) {
var elem = document.getElementById(id);
elem.style.display = (elem.style.display == "block") ? "none" : "block";
}

Fejlen er at 'stilling07' ikke er et gyldigt navn på et argument til
funktionen visElement.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Danny Bahl (02-08-2007)
Kommentar
Fra : Danny Bahl


Dato : 02-08-07 21:48

Lasse Reichstein Nielsen wrote in dk.edb.internet.webdesign.clientside:

> Fejlen er at 'stilling07' ikke er et gyldigt navn på et argument til
> funktionen visElement.

Men hvis jeg bare kalder argumentet 'id', kan funktionen jo hente hvilket som
helst id?

Hvordan fortæller jeg ellers hvad den skal hente?

Er der et sted, hvor jeg kan se gyldige argument-navne

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (02-08-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 02-08-07 22:51

Danny Bahl skrev:

>> Fejlen er at 'stilling07' ikke er et gyldigt navn på et
>> argument til funktionen visElement.
>
> Men hvis jeg bare kalder argumentet 'id', kan funktionen jo
> hente hvilket som helst id?

Ja - det er netop det der er meningen med at have et argument.


> Hvordan fortæller jeg ellers hvad den skal hente?

Du fortæller hvilket id der skal hentes når du kalder funktionen.

Et simpelt eksempel:

// Definition af funktionen - her bruges en variabel
function hej(navn){
   alert("Hej " + navn);
}

// Kald af funktionen - her angives en værdi
hej ("Hans"); // Viser en boks med teksten "Hej Hans"



> Er der et sted, hvor jeg kan se gyldige argument-navne

Dit problem nu er ikke navnet som sådan, men det at du bruger
anførselstegn - det angiver en tekststreng og ikke en variabel.

Du kan godt lave en funktion uden variable - så skal der bare være
tomme paranteser:

//Definition - uden variable
function hejHans(){
   alert("Hej Hans");
}

//Kald - uden variable
hejHans();

Resultatet er det samme som før - men hvor den første udgave af
funktionen kan bruges til at sige hej til mange forskellige navne,
er du låst til ét navn med den sidste udgave.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Danny Bahl (03-08-2007)
Kommentar
Fra : Danny Bahl


Dato : 03-08-07 15:33

Jeg er rigtig glad for at i gider prøve at forklare mig det - for
jeg fatter minus af noget af det. Jeg har prøvet at låne bøger på
biblioteket, uden den store succes (efter 10 sider går jeg i stå)

Derfor er det nok også irriterende at jeg heller ikke fatter jeres
pap-udskæringer.

Nu har jeg fjernet ' men det virker stadig ikke ... jeg er
grædefærdig!

<script type="text/javascript">
function visElement(stilling07) {
if document.getElementById(stilling07).style.display=="block"){
document.getElementById(stilling07).style.display="none";
}
else {
document.getElementById(stilling07).style.display="block";}
}
</script>

<a href="#" onclick="visElement(stilling07);return false;">Vis
element</a>

<div id="stilling07" style="display:none;">

EI melder fejl på linien under 'else'. Det er ikke fordi der er ged
i tuborgparateserne?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (03-08-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 03-08-07 15:59

Danny Bahl skrev:

> Nu har jeg fjernet ' men det virker stadig ikke ... jeg er
> grædefærdig!

Tricket er at du skal fjerne anførselstegnene det ene sted (der
hvor du erklærer funktionen) - ikke begge.


> function visElement(stilling07) {
> if
> document.getElementById(stilling07).style.display=="block"){
> document.getElementById(stilling07).style.display="none";
> }
> else {
> document.getElementById(stilling07).style.display="block";}
> }


Funktionserklæringen herover er god nok - selvom "stilling07" måske
ikke er så velvalgt et variabelnavn. I en erklæringsblok som den
herover kan du bruge næsten lige det variabelnavn du har lyst til
(uden anførselstegn) - bare husk at det navn du bruger i
funktionserklæringen også skal være det du bruger i "kroppen" af
funktionen. Et par eksempler med samme funktion, bare med et andet
variabelnavn:


// 1:
function visElement(id) {
if document.getElementById(id).style.display=="block"){
document.getElementById(id).style.display="none";
}
else {
document.getElementById(id).style.display="block";}
}


// 2:
function visElement(stilling) {
if document.getElementById(stilling).style.display=="block"){
document.getElementById(stilling).style.display="none";
}
else {
document.getElementById(stilling).style.display="block";}
}



Første linje er ret væsentlig at forstå. Vi tager den lige skridt
for skridt (med udgangspunkt i modifikation 1:
   
   function visElement(id) {


A: function => Et reserveret ord der fortæller at vi indleder en
funktionserklæring.

B: visElement => Navnet på funktionen. Det er det navn der skal
bruges når man senere skal anvende funktionen

C: ( ... ) => Parenteser anvendes for at angive de argumenter
funktionen tager. Hvis den ikke tager nogen argumenter, skriver man
bare () - fx visElement(). Hvis der er flere argumenter, adskilles
de med komma, fx visElement(element, size)

D: id => En variabel der bruges til at referere det argument man
kalder funktionen med. Variablen bliver tildelt en værdi når man
kalder funktionen, og denne værdi kan så aflæses "inde" i
funktionen når man refererer til variablen.

E: { ... } => Blokparanteser markerer hvor selve indholdet af
funktionen starter og slutter.



> <a href="#" onclick="visElement(stilling07);return false;">Vis
> element</a>


Her går det galt. "stilling07" er en variabel, men det du har brug
for er en værdi. Sætter du enkeltanførselstegn om værdien, skulle
det køre: <a href="#" onclick="visElement('stilling07');return
false;">Vis element</a>

(Det vil dog stadig være en ide at bruge et andet variabelnavn i
den første blok - så man ikke kommer til at tage fejl af stilling07
og 'stilling07').


Overvej at kigge på
<http://www.w3schools.com/js/default.asp> - og måske specielt
<http://www.w3schools.com/js/js_functions.asp>, der giver en
grundig indføring i javascriptfunktioner, inkl. en interaktiv
"legeplads" hvor man kan prøve sig frem.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Lars Madsen (03-08-2007)
Kommentar
Fra : Lars Madsen


Dato : 03-08-07 16:05

Danny Bahl wrote:
> Jeg er rigtig glad for at i gider prøve at forklare mig det - for
> jeg fatter minus af noget af det. Jeg har prøvet at låne bøger på
> biblioteket, uden den store succes (efter 10 sider går jeg i stå)
>
> Derfor er det nok også irriterende at jeg heller ikke fatter jeres
> pap-udskæringer.
>
> Nu har jeg fjernet ' men det virker stadig ikke ... jeg er
> grædefærdig!
>
> <script type="text/javascript">
> function visElement(stilling07) {
> if document.getElementById(stilling07).style.display=="block"){
> document.getElementById(stilling07).style.display="none";
> }
> else {
> document.getElementById(stilling07).style.display="block";}
> }
> </script>
>
> <a href="#" onclick="visElement(stilling07);return false;">Vis
> element</a>
>
> <div id="stilling07" style="display:none;">
>
> EI melder fejl på linien under 'else'. Det er ikke fordi der er ged
> i tuborgparateserne?
>

stilling07 er en streng så du skal nok lige have markeret den som sådan

prøv med, vi laver først funktionen generelt

<script type="text/javascript">
function visElement(id) {
if (document.getElementById(id).style.display=="block"){
document.getElementById(id).style.display="none";
}
else {
document.getElementById(id).style.display="block";
}
</script>

bemærk at stilling07 er i apostroffer da det er en tekststreng som er et argument

<a href="#" onclick="visElement('stilling07');return false;">Vis
element</a>

<div id="stilling07" style="display:none;">
tekst
</div>


En endnu nemmere måde (som nogen måske ikke kan lide er at installere jquery.js
fra jquery.com

så er det bare (ikke mere kode end dette, så vidt jeg husker):

a href="#" onclick="$('#stilling07').toggle();return false;">Vis
element</a>

<div id="stilling07" style="display:none;">
tekst
</div>






--

/daleif (remove RTFSIGNATURE from email address)

LaTeX FAQ: http://www.tex.ac.uk/faq
LaTeX book: http://www.imf.au.dk/system/latex/bog/ (in Danish)
Remember to post minimal examples, see URL below
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=minxampl
http://www.minimalbeispiel.de/mini-en.html

Birger (03-08-2007)
Kommentar
Fra : Birger


Dato : 03-08-07 16:05

"Danny Bahl" <dannybahl@hotmail.com> skrev i en meddelelse
news:46b0dd2b$1$90273$14726298@news.sunsite.dk...
> Hvad går galt her?
>
> Jeg forstår ikke JS, og ham der har hjulpet mig med det har ydet
> meget. Men jag kan bare ikke få det crap til at virke.
>
> Scriptet står ikke i head'en. Der er ikke noget CSS på id'et.
>
> <script type="text/javascript">
> function visElement('stilling07') {
> if document.getElementById('stilling07').style.display=="block"){
> document.getElementById('stilling07').style.display="none";
> }
> else {
> document.getElementById('stilling07').style.display="block";}
> }
> }
> </script>
>
> <a href="#" onclick="visElement('stilling07');return false;">Vis
> element</a>
>
> <div id="stilling07" style="display:none;">
> <table width="390px" border="1">



Antager der er mere i "stilling07" div'en og at den såvel som dens indhold
lukkes igen...

For det første, bør scriptet stå mellem <head> og </head> - det er der det
hører til.

Dernæst er din definition af funktionen forkert.
Fjern indholdet i parantesen.
En funktion kan have parametre. Man skal så angive dem med det variabelnavn,
man vil referere til i selve funktionen.
I dit tilfælde - hvis jeg forstår rigtigt - er der ingen grund til at bruge
parametre.
Endelig er der en } for meget i din oprindelige kode.

Altså :

function visElement() {
if document.getElementById('stilling07').style.display=="block") {
document.getElementById('stilling07').style.display="none";
}
else {
document.getElementById('stilling07').style.display="block";
}
}

og du skal ændre kaldet også :
<a href="#" onclick="visElement();return false;">Vis element</a>

Der kan være andre årsager til at tingene går galt. Flere elementer med
samme id, f.eks.

Birger



Danny Bahl (07-08-2007)
Kommentar
Fra : Danny Bahl


Dato : 07-08-07 17:46

Så virker det. Jeg forstår ikke hvorfor - men det virker.
Udslaget kom herfra:
http://www.nolz.dk

Tak til alle.
Danny

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste