/ 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
Generering af menu med JavaScript?
Fra : Søren Nielsen


Dato : 20-11-03 10:40

Hejsa.

Efter at have set f.eks. JP's "verden i fotos", spekulerede jeg på, om ikke
det kan lade sig gøre at lave et JavaScript der kan generere de enkelte
link, men der er åbenbart et eller andet elementært der er kikset for mig,
da jeg bare ikke kan få skidtet til at fungere.

Er det fordi jeg fumler rundt i koden, eller kan det simpelt hen ikke lade
sig gøre i JavaScript?

Når/hvis jeg får skidtet til at fungere, er det naturligvis planen at
teksten skal indgå i koden.

Den kode, jeg ind til videre er kommet frem til ser således ud:

indhold af "191003.js":

var billede = new Array(); var tekst = new Array();
billede[1]='images/19102003-01.jpg'; tekst[1]='tekst1';
billede[2]='images/19102003-02.jpg'; tekst[2]=tekst2';
billede[3]='images/19102003-03.jpg'; tekst[3]='tekst3';
billede[4]='images/19102003-04.jpg'; tekst[4]='tekst4';
billede[5]='images/19102003-05.jpg'; tekst[5]='tekst5';
billede[6]='images/19102003-06.jpg'; tekst[6]='tekst6';
billede[7]='images/19102003-07.jpg'; tekst[7]='tekst7';
billede[8]='images/19102003-08.jpg'; tekst[8]='tekst8';
billede[9]='images/19102003-09.jpg'; tekst[9]='tekst9';
billede[10]='images/19102003-10.jpg';tekst[10]='tekst10';

indhold af "191003.js" slut

<script language="JavaScript1.2" src="191003.js"></script>

<script language="JavaScript1.2">

var antalBilleder = billede.length;
var billedID = 1;


document.write('<div class="fotolink">')

for(billedID=1;billedID<antalBilleder;billedID++){

function sb() {
document.getElementById('image').src = billede[billedID]
}
document.write('| ')
document.write('<A href="#" onclick="sb()">')
document.write(billedID)
document.write('</a> ')
}
document.write(' |')
document.write('</div>')

function initImage(){
document.getElementById('image').src = billede[1]
}

</script>
</head>
<BODY onload="initImage()">

<img src="" border="0" vspace="10" hspace="10" align="center" alt=""
id="image">
<div id="billedtekst"></div>
</body>

På forhånd tak

Søren



 
 
Lasse Reichstein Nie~ (20-11-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 20-11-03 16:11

"Søren Nielsen" <soeren.i.nielsen@tele2adsl(dot)dk> writes:

> Er det fordi jeg fumler rundt i koden, eller kan det simpelt hen ikke lade
> sig gøre i JavaScript?

Det lyder ganske overkommeligt.

> Når/hvis jeg får skidtet til at fungere, er det naturligvis planen at
> teksten skal indgå i koden.
>
> Den kode, jeg ind til videre er kommet frem til ser således ud:
>
> indhold af "191003.js":
>
> var billede = new Array(); var tekst = new Array();
> billede[1]='images/19102003-01.jpg'; tekst[1]='tekst1';
> billede[2]='images/19102003-02.jpg'; tekst[2]=tekst2';

Mangler ' foran tekst2. Det er nok til at det ikke virker.

> indhold af "191003.js" slut
>
> <script language="JavaScript1.2" src="191003.js"></script>

Lad være med at skrive "javascript1.2" med mindre du ved hvad
forskellen på 1.2 og 1.3 er, og ved at du foretrækker 1.2 (for det gør
du temmelig sikker ikke - der er en grund til at Javascript 1.2 kun
fandtes i netscape 4.0 til 4.05).

I HTML 4 er type-attributten påkrævet (og tilstrækkelig). Brug derfor
altid
<script type="text/javascript" ...>
Den er både bagud- or forud-kompatibel.


> <script language="JavaScript1.2">
fitto.

> var antalBilleder = billede.length;
> var billedID = 1;

> document.write('<div class="fotolink">')
>
> for(billedID=1;billedID<antalBilleder;billedID++){
>
> function sb() {
> document.getElementById('image').src = billede[billedID]
> }

This will not work the way you think it does. You only define one
function, and even if you defined on for each iteration of the for
loop, you would only be able to refer to one of them with the name
"sb",* and* they would all do the same, because they refer to the same
billedID variable, and it only has *one* value.

Instead, move it outside the loop and give it an argument:
function sb(num) {
document.images['image'].src = billede[num];
}

(document.images er bedre understøttet end document.getElementById,
og begge er lige rigtige).

> document.write('| ')
> document.write('<A href="#" onclick="sb()">')

Brug aldrig href="#". Det er et tegn på at du bruger et link forkert.
Brug hellere en knap, hvis du bare vil have noget at klikke på.

Hvis du insiterer på at bruge et link, så gør i det mindste så det virker
for folk uden Javascript slået til (hvis siden kun er til dig selv, så
er det ikke så vigtigt, men husk det alligevel til en anden gang :)

Dvs., den foretrukne måde at lave det du vil, er:

document.write('<a href="'+billede[billedID]+'"'+
' onclick="sb('+billedID+');return false;">'+
tekst[billedID]+'<\/a>');
(altså så det første link bliver
<a href="images/19102003-01.jpg" onclick="sb(1);return false">
tekst1</a>

Husk "return false", eller vil den bagefter følge linket. For dit
link betyder det at den genindlæser siden.


/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.'

Søren Nielsen (23-11-2003)
Kommentar
Fra : Søren Nielsen


Dato : 23-11-03 09:13

Jamen - nu virker det jo!!!!

Tusind tak for hjælpen


"Lasse Reichstein Nielsen" <lrn@hotpop.com> skrev i en meddelelse
news:3ccj13dx.fsf@hotpop.com...
> "Søren Nielsen" <soeren.i.nielsen@tele2adsl(dot)dk> writes:
>
> > Er det fordi jeg fumler rundt i koden, eller kan det simpelt hen ikke
lade
> > sig gøre i JavaScript?
>
> Det lyder ganske overkommeligt.
>
> > Når/hvis jeg får skidtet til at fungere, er det naturligvis planen at
> > teksten skal indgå i koden.
> >
> > Den kode, jeg ind til videre er kommet frem til ser således ud:
> >
> > indhold af "191003.js":
> >
> > var billede = new Array(); var tekst = new Array();
> > billede[1]='images/19102003-01.jpg'; tekst[1]='tekst1';
> > billede[2]='images/19102003-02.jpg'; tekst[2]=tekst2';
>
> Mangler ' foran tekst2. Det er nok til at det ikke virker.
>
> > indhold af "191003.js" slut
> >
> > <script language="JavaScript1.2" src="191003.js"></script>
>
> Lad være med at skrive "javascript1.2" med mindre du ved hvad
> forskellen på 1.2 og 1.3 er, og ved at du foretrækker 1.2 (for det gør
> du temmelig sikker ikke - der er en grund til at Javascript 1.2 kun
> fandtes i netscape 4.0 til 4.05).
>
> I HTML 4 er type-attributten påkrævet (og tilstrækkelig). Brug derfor
> altid
> <script type="text/javascript" ...>
> Den er både bagud- or forud-kompatibel.
>
>
> > <script language="JavaScript1.2">
> fitto.
>
> > var antalBilleder = billede.length;
> > var billedID = 1;
>
> > document.write('<div class="fotolink">')
> >
> > for(billedID=1;billedID<antalBilleder;billedID++){
> >
> > function sb() {
> > document.getElementById('image').src = billede[billedID]
> > }
>
> This will not work the way you think it does. You only define one
> function, and even if you defined on for each iteration of the for
> loop, you would only be able to refer to one of them with the name
> "sb",* and* they would all do the same, because they refer to the same
> billedID variable, and it only has *one* value.
>
> Instead, move it outside the loop and give it an argument:
> function sb(num) {
> document.images['image'].src = billede[num];
> }
>
> (document.images er bedre understøttet end document.getElementById,
> og begge er lige rigtige).
>
> > document.write('| ')
> > document.write('<A href="#" onclick="sb()">')
>
> Brug aldrig href="#". Det er et tegn på at du bruger et link forkert.
> Brug hellere en knap, hvis du bare vil have noget at klikke på.
>
> Hvis du insiterer på at bruge et link, så gør i det mindste så det virker
> for folk uden Javascript slået til (hvis siden kun er til dig selv, så
> er det ikke så vigtigt, men husk det alligevel til en anden gang :)
>
> Dvs., den foretrukne måde at lave det du vil, er:
>
> document.write('<a href="'+billede[billedID]+'"'+
> ' onclick="sb('+billedID+');return false;">'+
> tekst[billedID]+'<\/a>');
> (altså så det første link bliver
> <a href="images/19102003-01.jpg" onclick="sb(1);return false">
> tekst1</a>
>
> Husk "return false", eller vil den bagefter følge linket. For dit
> link betyder det at den genindlæser siden.
>
>
> /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.'



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

Månedens bedste
Årets bedste
Sidste års bedste