Toon posts:

[AJAX] class in innerhtml

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hellow,

Ik heb een probleempje met m'n innerhtml die ik via AJAX doorstuur naar een DIV op een pagina.

Als ik op de normale pagina pagina dit doe:
HTML:
1
<a href="testpagina.php?height=220&width=400" class="thickbox">KLIK</a>


krijg ik een thickbox popup van testpagina.php met de juiste grootte. alles ok dus.

Nu stuur ik via AJAX dezelfde code naar de innerHTML van een DIV (dezelfde HTML als deze hierboven). De link verschijnt in mij DIV, maar als ik erop klik wordt mijn thickbox klasse niet uitgevoerd? Ik krijg enkel een volledig nieuw wit scherm met daarin de testpagina.php.

Hoe komt het dat de link niet geopend wordt via de thickbox klasse? en hoe kan ik ervoor zorgen dat dit wel gebeurd?

Bedankt!

Acties:
  • 0 Henk 'm!

  • skabouter
  • Registratie: Oktober 2000
  • Laatst online: 20-08 08:55

skabouter

Skabouter

Volgens mij zorgt 'thickbox' ervoor dat, na het renderen van de complete pagina, alle elementen met de class thickbox worden aangevuld met een onclick statement.

Als je zelf hierna in de html gaat rommelen dan moet je er dus voor zorgen dat de functie die verantwoordelijk is voor het scannen van de content nog een keer wordt uitgevoerd.

Dat is deze code:
JavaScript:
1
2
3
4
5
$(document).ready(function(){   
  tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
  imgLoader = new Image();// preload image
  imgLoader.src = tb_pathToImage;
});


die vervolgens weer deze functie aanroept:
JavaScript:
1
2
3
4
5
6
7
8
9
10
function tb_init(domChunk){
  $(domChunk).click(function(){
  var t = this.title || this.name || null;
  var a = this.href || this.alt;
  var g = this.rel || false;
  tb_show(t,a,g);
  this.blur();
  return false;
  });
}


Wat jij vervolgens kan doen is deze functie handmatig aanroepen met de code:
JavaScript:
1
 tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox

[ Voor 52% gewijzigd door skabouter op 07-03-2009 11:26 . Reden: Code toegevoegd ]

[ Dislect ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
skabouter schreef op zaterdag 07 maart 2009 @ 11:23:
Volgens mij zorgt 'thickbox' ervoor dat, na het renderen van de complete pagina, alle elementen met de class thickbox worden aangevuld met een onclick statement.

Als je zelf hierna in de html gaat rommelen dan moet je er dus voor zorgen dat de functie die verantwoordelijk is voor het scannen van de content nog een keer wordt uitgevoerd.

Dat is deze code:
JavaScript:
1
2
3
4
5
$(document).ready(function(){   
  tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
  imgLoader = new Image();// preload image
  imgLoader.src = tb_pathToImage;
});


die vervolgens weer deze functie aanroept:
JavaScript:
1
2
3
4
5
6
7
8
9
10
function tb_init(domChunk){
  $(domChunk).click(function(){
  var t = this.title || this.name || null;
  var a = this.href || this.alt;
  var g = this.rel || false;
  tb_show(t,a,g);
  this.blur();
  return false;
  });
}


Wat jij vervolgens kan doen is deze functie handmatig aanroepen met de code:
JavaScript:
1
 tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
Super!! dat is het inderdaad, na het invoegen van mij innerhtml heb ik de tb_init functie opgeroepen:
JavaScript:
1
tb_init('a.thickbox'); // Initialise again


En dat werkt perfect! bedankt

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Hou je er rekening mee dat je een & in HTML-entities moet schrijven in een URL. Dus zo:

HTML:
1
<a href="testpagina.php?height=220&amp;width=400" class="thickbox">KLIK</a>

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Oh, moet dat?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Als ik jou was zou ik gewoon even de Mootools lib downloaden... Perfecte library en je kan er super mooie add-ons voor krijgen, bijv. op http://web-kreation.com/i...credible-mootools-sripts/

Acties:
  • 0 Henk 'm!

  • .Gertjan.
  • Registratie: September 2006
  • Laatst online: 17-02 21:20

.Gertjan.

Owl!

offtopic:
Je moet het niet, maar het is wel netter. De meeste browsers zullen het stukje achter zijn & (width) niet begrijpen en zullen er van uit gaan dat je waarschijnlijk die & ook echt als een & wil gebruiken. Als je jezelf het goede gedrag aanleert ga je later in ieder geval de fout niet in.

The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Of het moet valt te betwisten, maar de & is specifiek bedoeld om entities te delimiten en dus gebruik je voor de & de entity &amp;.

@Hieronder: GMTA :P

[ Voor 10% gewijzigd door RobIII op 09-03-2009 15:52 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Niets moet. Je houden aan coding standards, W3C richtlijnen, best practices, enz... niets van dat alles moet. Maar het is wel verstandig. Dus ik geef het hier, gratis en voor niets, als tip mee aan Qualistor. Of 'ie er wat mee doet... dat zoekt 'ie zelf maar uit. Bijdehante opmerkingen als "oh, moet dat?" zijn dan niet relevant. Wat wel relevant is, is het volgende linkje: http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.2.2

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31

Bosmonster

*zucht*

Verwijderd schreef op maandag 09 maart 2009 @ 15:28:
Als ik jou was zou ik gewoon even de Mootools lib downloaden... Perfecte library en je kan er super mooie add-ons voor krijgen, bijv. op http://web-kreation.com/i...credible-mootools-sripts/
Thickbox is jQuery en waarom is Mootools beter dan jQuery?

(Dat even buiten het feit dat ik Thickbox een afgrijselijke bak code vind)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

.Gertjan. schreef op maandag 09 maart 2009 @ 15:42:
[...]

offtopic:
Je moet het niet, maar het is wel netter. De meeste browsers zullen het stukje achter zijn & (width) niet begrijpen en zullen er van uit gaan dat je waarschijnlijk die & ook echt als een & wil gebruiken. Als je jezelf het goede gedrag aanleert ga je later in ieder geval de fout niet in.
Dat is geen antwoord op m'n vraag.

Het gaat me er niet om wat "de meeste browsers" doen. Het gaat me erom hoe het in de HTML standaard staat. In de SGML spec staat (volgens W3C, ik kon zo snel niet de volledige spec vinden) dat een ';' op het eind niet verplicht is voor een end-of-line of een tag (maar het is wel recommended om de ; altijd te gebruiken). Gezien het feit dat er iig geen tag na kan komen, en er ook geen linebreak in staat, en er ook vrijwel nooit een ; op die plek in de url terecht komt, zal het dus nooit conflicteren met character entities.

De vraag blijft wat er moet gebeuren met een & in HTML zonder dat het een character entity is. En dus niet wat de meeste browsers doen, maar wat erover in de spec staat.
HuHu schreef op maandag 09 maart 2009 @ 15:50:
Bijdehante opmerkingen als "oh, moet dat?" zijn dan niet relevant.
Blaaaaaat. Het was geen bijdehante opmerking, het was een terechte vraag. Misschien helpt het als je minder assumpties maakt over de intentie van m'n post :Z. Dank voor de link. Wel weer suf dat dat in een appendix staat, en niet gewoon bij de info over character references, waar ik keek (hoofdstuk 3 en 5).

[ Voor 37% gewijzigd door .oisyn op 09-03-2009 16:05 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • .Gertjan.
  • Registratie: September 2006
  • Laatst online: 17-02 21:20

.Gertjan.

Owl!

.oisyn schreef op maandag 09 maart 2009 @ 15:53:
De vraag blijft wat er moet gebeuren met een & in HTML zonder dat het een character entity is. En dus niet wat de meeste browsers doen, maar wat erover in de spec staat.
Wat er in de spec staat is best interessant, maar helaas houden niet alle browsers zich netjes aan de standaarden en de regels, maar goed mijn antwoord was ook meer bedoeld as hoe het zou moeten worden gedaan (vandaar dat ik zeg dat je het beter wel kan doen en dat aanvulde met de opmerking dat de meeste browsers je wel een handje helpen).
De vraag blijft wat er moet gebeuren met een & in HTML zonder dat het een character entity is. En dus niet wat de meeste browsers doen, maar wat erover in de spec staat.
Als de browser hem moet behandelen als een character entity (omdat er een & voor staat) zou hij denk ik een "ongeldig" teken moeten laten zien (dus een blokje of vraagteken). Het zou namelijk kunnen dat het teken niet in je huidige tekenset zit, maar elders op de wereld wel bestaat in een tekenset.

Maar dan vraag ik me weer af hoe een browser om moet gaan met rare/vreemde tekens in urls (want hier staat hij in een <a>) want zover ik weet mag je niet zomaar ieder willekeurig teken in de url gooien (wat de meeste browsers ook weer automatisch omzetten, een spatie wordt automatisch een %20).

Maar goed, ik ken de standaarden niet uit mijn hoofd, stukjes ken ik en de rest is "best practice" opgedaan door er geregeld mee te werken en bij mensen af te kijken hoe zij dingen doen en zo af en toe wat blogs te lezen

[ Voor 31% gewijzigd door .Gertjan. op 09-03-2009 16:03 ]

The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb wel gemerkt dat tijdens de xhtml validatie, een
code:
1
&amp;
teken moet staan om correct te valideren. Het gebruik van & verkrijgt een fout..

Heb er dus een
code:
1
&amp;
van gemaakt. Bedankt voor de terechte opmerkingen ;)

[ Voor 5% gewijzigd door Verwijderd op 11-03-2009 14:22 ]

Pagina: 1