Geachte mede-GoT'ters,
Op dit moment ben ik mijn adminpanel van mijn CMS aan het ombouwen van frames naar een ajax-based omgeving. Dit heeft voornamelijk te maken met de makkelijkere designmogelijkheden die er dan komen.
Op dit moment heb ik een probleem met ckeditor die voor een loop zorgt. Als je nu op een tag met de pageloader-class klikt wordt de volgende code "uitgevoerd":
callBinds() is er voor om te zorgen dat er steeds weer die javascript kan worden gebruikt die er in staat.
Wat is nou het probleem, zul je je nu afvragen?
Nou, op het moment dat je een pagina oproept die CKEditor bevat, gaat het fout. In zo'n pagina wordt:
Wat doe ik hier dus fout?
Op dit moment ben ik mijn adminpanel van mijn CMS aan het ombouwen van frames naar een ajax-based omgeving. Dit heeft voornamelijk te maken met de makkelijkere designmogelijkheden die er dan komen.
Op dit moment heb ik een probleem met ckeditor die voor een loop zorgt. Als je nu op een tag met de pageloader-class klikt wordt de volgende code "uitgevoerd":
JavaScript:
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
33
34
35
36
37
38
39
| $(function() { callBinds(); }); function onPageLoader() { //Binds voor javascripts op subpagina's } function loadPage(urll) { $.ajax({ url: urll, success: function(page){ if (typeof CKEDITOR.instances.inhoud != 'undefined') CKEDITOR.instances.inhoud.destroy (true); $('.page').html (page); callBinds(); onPageLoader(); } }); } function callBinds() { $('.pageloader').click(function () { loadPage($(this).attr('href')); return false; }); $('input[type="submit"]').click(function() { $.ajax({ type: "POST", success: function(page){ $('.steps').html (page); return false; }, complete: function (){ callBinds(); onPageLoader(); } }); return false; }); } |
callBinds() is er voor om te zorgen dat er steeds weer die javascript kan worden gebruikt die er in staat.
Wat is nou het probleem, zul je je nu afvragen?
Nou, op het moment dat je een pagina oproept die CKEditor bevat, gaat het fout. In zo'n pagina wordt:
JavaScript:
aangeroepen om de textarea met class ckeditor te vervangen. Dat gebeurt allemaal goed. Alleen wanneer ik dus op zo'n link klik wordt ie dus eerst gedestroyed, zoals je ziet, en dan weer op de pagina aangemaakt. Wat nu optreed is dat de ajax call in de loadPage-functie eerst 1 keer gebeurt, volgende paginaklik 2 keer, dan 4 keer, 8 keer enzovoort. Dus steeds dubbel.1
| CKEDITOR.replace( 'inhoud' ); |
Wat doe ik hier dus fout?
RobIII: Ik probeer als ik wil stoppen met mijn auto ook altijd de sigarettenaansteker, de airco, 3 radioknoppen en de binnenverlichting en dan de rem :P