Toon posts:

[js] onclick maken bij dynamische tabellen

Pagina: 1
Acties:

Verwijderd

Topicstarter
De situatie is als volgt:
Ik maak via een popupschermpje in een iframe op de opener rijen aan in een tabel.
code:
1
2
3
4
5
6
7
// nieuwe rij aanmaken
var newCell;
var newRow = theTableBody.insertRow( 0 );

newCell = newRow.insertCell( 0 );
newCell.innerHTML = 'bla';
// enz


Hartstikke leuk, het werkt ook allemaal geweldig, alleen nu wil ik bij de onclick van de row een functie draaien.
Nu heb ik van alles geprobeert, maar het werkt simpelweg niet:
code:
1
2
3
newRow.onClick = runonclick;
// en
newRow.addEventListener("onclick",runonclick,false);


Dit werkt dus niet.
Daarnaast heb ik nog hier op Got, op google en nog wat sites gezocht, maar ik krijg het simpelweg niet voor elkaar!

Ik ben de hele ochtend al aan het zoeken, veel dingen geprobeerd, maar het wil niet lukken, terwijl het volgens mij niet moeilijk moet zijn 8)7.

[ Voor 5% gewijzigd door Verwijderd op 07-12-2002 13:31 . Reden: typo ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

niet toevallig:
code:
1
newRow.onclick = runonclick;

:?
(js is case-sensitive)

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op 07 December 2002 @ 12:58:
niet toevallig:
code:
1
newRow.onclick = runonclick;

:?
(js is case-sensitive)
Nee, dat werkt ook niet.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

testcase werkt wel hoor:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<html>
<head>
<title>poepoe</title>
<script type="text/javascript">

function newRow() {

  var newRow = myTable.insertRow( 0 );
  newRow.onclick=poepoe;

  var newCell = newRow.insertCell( 0 );
  newCell.innerHTML = 'bla';

}

function poepoe() {

  alert('woei!');

}

</script>
</head>
<body>
<input type="button" value="add" onClick="newRow()" /><br />
<table border=1 id="myTable" width=100>
  <tr>
    <td width=100>1e rij</td>
  </tr>
</table>
</body>
</html>

Intentionally left blank


Verwijderd

Topicstarter
Hmm, dat is niet gaaf.
Ik heb een site met in het midden een iframe.
Vanuit het normale scherm wordt er een modal dialog geopent en die schrijft naar het iframe (wat dus gewoon goed werkt).

Alleen het onclick gebeuren toewijzen werkt niet!

Verwijderd

Topicstarter
Jouw testcase bracht me op een idee.

Nu doe ik dat zo:
code:
1
2
newRow.onclick=opener.runonclick;
// opener heb ik zelf gedefinieerd, om makkelijk terug te kunnen praten


Of te wel: je moet vanuit waar je hem aanmaakt verwijzen naar de functie.

/me is crisp dankbaar

[ Voor 36% gewijzigd door Verwijderd op 07-12-2002 15:01 ]


Verwijderd

Je kan ook je script in de pagina met het iframe zetten en dan je functie aanroepen vanuit de data die je in het iframe hebt door er parent voor te zetten. Of begrijp ik je dan verkeerd?

Verwijderd

Topicstarter
Verwijderd schreef op 07 december 2002 @ 23:52:
Je kan ook je script in de pagina met het iframe zetten en dan je functie aanroepen vanuit de data die je in het iframe hebt door er parent voor te zetten. Of begrijp ik je dan verkeerd?
Dat kan niet (niet zoals jij het zegt). omdat het vanuit een modal popup moet.
Maar vanuit daar kan je natuurlijk wel een functie op de opener aanroepen, maar het werkt al dus :).

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Verwijderd schreef op 07 December 2002 @ 13:41:
Jouw testcase bracht me op een idee.

Nu doe ik dat zo:
code:
1
2
newRow.onclick=opener.runonclick;
// opener heb ik zelf gedefinieerd, om makkelijk terug te kunnen praten


Of te wel: je moet vanuit waar je hem aanmaakt verwijzen naar de functie.

/me is crisp dankbaar


Wat is die opener dan? Want het opener object bestaat standaard namelijk al en is een referentie naar het window-object dat het huidige window opende... Die heb je dan dus mogelijk overschreven (niet zo handig ;)).

Als je zelf dit soort scripts ontwikkeld is het dan ook geen slecht idee een vaste prefix te hanteren. Voor NextGeneration bijvoorbeeld ng_opener ofzo :) Dan weet je zeker dat je niks overschrijft en kun je ook makkelijker je eigen functies en methodes terugvinden.

[ Voor 7% gewijzigd door Bosmonster op 08-12-2002 13:04 ]


Verwijderd

Topicstarter
Opener bestaat niet bij modal popups, deze wordt bij mij bij elke pagina die in zo'n popup geopend gedefineerd (soort template), door die mee te geven met de dialogArguments.

Daarnaast zie ik het nut van zo'n vaste prefix absoluut niet in, je moet gewoon zinvolle namen voor je functies, enz hebben (en weten wat je doet), en dan heb je geen overschrijf problemen.
Als je bang bent om iets te overschrijven lijkt het me zinnig om je iets meer in de materie te verdiepen (nofi).

Verwijderd

Verwijderd schreef op 08 December 2002 @ 15:08:
Opener bestaat niet bij modal popups, deze wordt bij mij bij elke pagina die in zo'n popup geopend gedefineerd (soort template), door die mee te geven met de dialogArguments.

Daarnaast zie ik het nut van zo'n vaste prefix absoluut niet in, je moet gewoon zinvolle namen voor je functies, enz hebben (en weten wat je doet), en dan heb je geen overschrijf problemen.
Als je bang bent om iets te overschrijven lijkt het me zinnig om je iets meer in de materie te verdiepen (nofi).
ik geef Bosmonster wel degelijk gelijk; het is ranzig om reserved keywords te gebruiken, of ze nu in je script als zodanig gebruikt worden of niet. Op het moment dat jij om wat voor reden dan ook popups gaat genereren met window.open() krijg je ruzie :) terwijl het ontzettend makkelijk te voorkomen is. Maar ik denk dat dit het voeren van een discussie niet waard is. Op de enorme shitload aan logisch verantwoorde namen hoef je niet net dat reserved word te kiezen :) sim-pel :)
Pagina: 1