Hi

Ik probeer om een click-event to te voegen aan elke rij in mijn tabel. Echter bij klik gebeurd er niet maar bij addeventlistener wel en het moet omgekeerd zijn natuurlijk.
Wat kan ik doen?

Jan


function WindowIsLoaded() {
    let t= document.getElementById('striplijst');
    if(t) {
        let r = t.tBodies[0].rows;
        for (i=0;i<r.length;i++) {
            r[i].addEventListener('click', openpopup(r[i].cells[0].innerHTML));
        }
    }
}
function openpopup(sn) {
    newPopup("showtitle.php?sn=" . $data[sn])
}

Ik heb ook geprobeerd met lijn 6
r[i].onclick = function() {openpopup(r[i].cells[0].innerHTML)};
Ik zou, als ik geen jQuery gebruik de volgende syntax gebruiken:


r[i].addEventListener('click', function() { openpopup(r[i].cells[0].innerHTML)});


of, maar ik ben niet 100% zeker van de syntax van this

r[i].addEventListener('click', function() { openpopup(this.cells[0].innerHTML)});



Ik vraag me ook af: komt er nu niet direct de huidige inhoud (bij het aanmaken van de pagina) van innerHTML in de functie?
Wat als je later nog aanpassingen laat doen, zou je dan niet pas op het moment van klikken de inhoud op moeten halen?

Kan de inhoud van innerHTML meer regels bevatten.

En vooral:
Moet op regel 11 geen + staan waar nu een punt staat? En wat is $data? is dat een js variabele of een uit PHP?
Ja, ook in JS mag een var met een $ beginnen. Maar wat is dat hier dan?
opnieuw

Bedankt. Ik heb het werkend gekregen.

betreffende uw vragen:

Ik vraag me ook af: komt er nu niet direct de huidige inhoud (bij het aanmaken van de pagina) van innerHTML in de functie?

Bijna onmogelijk gezien dit stripreeksen zijn.
De rode ridder 250 boeken
Jommeke 325
Suske en wiske 379.

pomp dat maar eens in een gezamenlijke tabel :)

Kan de inhoud van innerHTML meer regels bevatten

Nee is altijd een nummer

Moet op regel 11 geen + staan waar nu een punt staat? En wat is $data? is dat een js variabele of een uit PHP?
Ja, ook in JS mag een var met een $ beginnen. Maar wat is dat hier dan?

Klopt moest een plus zijn ipv punt en $data is inderdaad uit php.

Jan
Ik heb mijn dochter gezegd dat ze een lijst moet gaan maken met alle Suske en Wiskes die we hebben / nog missen, zodat we niet steeds meer exemplaren van hetzelfde nummer kopen.

Ik dacht zelf aan een Google-docs spreadsheet.

Is jouw toepassing daar ook bruikbaar voor?
Ik zou zeggen kijk eens.
www.janr.be en door klikken naar strips.

[size=xsmall]Toevoeging op 24/06/2025 10:06:41:[/size]

Er staat ook een reeks "dubbel".
Mocht je in Gent zijn wil ik wel wisselen.
Je houdt zelfs bij waar je ze gekocht hebt....

Mijn eerste heb ik denk ik al 45 jaar in bezit. Dat zou ik niet meer weten :-)


Maar Gent is wat ver weg. Als het nu Genk was geweest...
Al die vraagtekens wil dan ook zeggen dat ik het niet weet. Hetzelfde voor de prijs ik heb die niet gekregen of gestolen hoor.
Hi Jan,

Waarschijnlijk overschrijf je het click-event per ongeluk, of wordt het niet op het juiste moment gebonden.
Het verschil tussen onclick = ... en addEventListener('click', ...) kan belangrijk zijn:

?? Mogelijke oorzaken

Je gebruikt onclick vóórdat de rijen bestaan
Als de tabel pas later wordt toegevoegd (bijv. via JavaScript), werkt onclick niet, maar addEventListener soms wel — afhankelijk van wanneer je bindt.

Je overschrijft je eigen handlers
onclick ondersteunt maar één functie.
Als ergens anders in je code nóg een onclick wordt toegewezen, wordt de vorige gewist.

Er staat een fout in de functie zelf
Bij onclick worden fouten sneller genegeerd.
Bij addEventListener zie je ze wél vaak in de console.
Zullen we oude topics lekker laten voor wat het is, Oleg?

Reageren