[Javascript] functie werkt maar één keer goed

Pagina: 1
Acties:

  • .daan
  • Registratie: Januari 2002
  • Laatst online: 23-09-2023

.daan

{visibility:hidden;}

Topicstarter
Ik ben bezig een soort foto-gallery te maken, en ik gebruik daarbij javascript. Nu heb ik een functie geschreven (loadThumbs) die 6 images moet weergeven in een div. De functie krijgt als variabele de index mee van de eerste image die weergegeven moet worden. Ter verduidelijking:
Ik heb bijvoorbeeld 20 images, genummerd 1 t/m 20. Als ik de functie bijvoorbeeld de waarde 1 mee geef, moeten dus image 1 t/m 6 geladen worden.

Het rare is nu, de eerste keer dat ik de loadThumbs aanroep (vanuit een andere functie), gaat dit goed. Als ik echter de functie aanroep vanuit de html code (<a href="javascript:loadThumbs('1');">), dan worden in één keer álle afbeeldingen geladen (20 dus) in plaats van maar zes.

Ik heb geprobeerd dit te omzeilen door in de html code een dummie functie aan te roepen, die op zijn beurt weer loadThumbs aanroept, maar ook dit gaat fout.

Hieronder de code van de functie loadThumbs die de images moet laden, en de functie start die de eerste keer loadThumbs aanroept. De variable images geeft het totaal aantal afbeeldingen aan, bijvoorbeeld 20 dus.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function loadThumbs(startIndex){
    var text = "";
    for(i=startIndex;(i<startIndex+6)&&(i<=images);i++){
        text+="<a href=\"javascript:loadImage(\'"+i+"\')\">[img]\""+folder+i+"_thumb.jpg\"[/img]</a> ";
        if((i-startIndex)%2==1){
            text+="<br>";
        }
    }
    
    document.getElementById('thumbnails').innerHTML = text;
}

function start(){
    loadThumbs(1);
}

Ik werk pas kort met javascript, en ik probeer nogal eens dingen te doen die wel kunnen in Java (waar ik wel ervaring mee heb), maar niet in javascript. Misschien dat het zoiets is? Of misschien zie ik een stomme fout over het hoofd?

public void ik()


  • André
  • Registratie: Maart 2002
  • Laatst online: 23-04 12:47

André

Analytics dude

Probeer het eens zo
code:
1
<a href="javascript:loadThumbs(1);">

ipv zo:
code:
1
<a href="javascript:loadThumbs('1');">

Nu wordt in regel 3 de '1' bij de 6 toegevoegd wat dus '16' geeft ;)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:45

crisp

Devver

Pixelated

sowieso, als het geen link is gebruik dan geen anchor maar een willekeurig ander element met een onclick eventhandler. Als je toch een anchor wilt gebruiken, zorg dan dat de href verwijst naar een pagina die zonder javascript tot de gewenste informatie leidt (accessibility) en zet je javascript functie alsnog in een onclick:
HTML:
1
<a href="thumbnails.php&start=1" onclick="loadThumbs(1);return false">

Intentionally left blank


  • .daan
  • Registratie: Januari 2002
  • Laatst online: 23-09-2023

.daan

{visibility:hidden;}

Topicstarter
André schreef op zondag 23 oktober 2005 @ 22:24:
Probeer het eens zo
code:
1
<a href="javascript:loadThumbs(1);">
Hmm inderdaad zo werkt het...mijn voorgevoel over een stomme fout klopte :X Eigelijk heel logisch ook :P
crisp schreef op zondag 23 oktober 2005 @ 22:35:
sowieso, als het geen link is gebruik dan geen anchor maar een willekeurig ander element met een onclick eventhandler. Als je toch een anchor wilt gebruiken, zorg dan dat de href verwijst naar een pagina die zonder javascript tot de gewenste informatie leidt (accessibility) en zet je javascript functie alsnog in een onclick:
HTML:
1
<a href="thumbnails.php&start=1" onclick="loadThumbs(1);return false">
Ok, daar ga ik ook eens naar kijken. Dank voor de tip!

public void ik()


Verwijderd

crisp schreef op zondag 23 oktober 2005 @ 22:35:
sowieso, als het geen link is gebruik dan geen anchor maar een willekeurig ander element met een onclick eventhandler. Als je toch een anchor wilt gebruiken, zorg dan dat de href verwijst naar een pagina die zonder javascript tot de gewenste informatie leidt (accessibility) en zet je javascript functie alsnog in een onclick:
HTML:
1
<a href="thumbnails.php&start=1" onclick="loadThumbs(1);return false">
Grappig dat dit wordt gezegd in de tijd dat steeds meer mensen bezig zijn met AJAX. Waarbij dus veel door de client wordt berekend en gedaan :)

  • André
  • Registratie: Maart 2002
  • Laatst online: 23-04 12:47

André

Analytics dude

AJAX sucked op het gebied van zoekmachine-optimalisatie, dat heeft oa met javascript te maken. De manier die crisp noemt is voor mensen zonder javascript en voor zoekmachines perfect te volgen. Ik vind AJAX ansich wel grappig maar je moet je pagina er niet van afhankelijk maken.

Verwijderd

André schreef op maandag 24 oktober 2005 @ 10:25:
AJAX sucked op het gebied van zoekmachine-optimalisatie, dat heeft oa met javascript te maken. De manier die crisp noemt is voor mensen zonder javascript en voor zoekmachines perfect te volgen. Ik vind AJAX ansich wel grappig maar je moet je pagina er niet van afhankelijk maken.
Precies zoals ik erover denk. Laat daar geen twijfel over bestaan :)
Pagina: 1