login  Naam:   Wachtwoord: 
Registreer je!
 Forum

jquery $.load probleem

Offline nick5556 - 15/09/2011 22:06 (laatste wijziging 15/09/2011 22:07)
Avatar van nick5556PHP beginner Hallo,

Ik probeer een systeem te maken waardoor als ik op een pagina klik(bv. registeer) dat mijn content-box dan dichtklapt, de html eruit haalt en vervolgens een pagina inlaad(via $.load) maar het $.load wil niet werken, als ik dit verander voor 'test' of iets in die trend dan werkt alles!

Even wat bij info over de mappen structuur

/index.php(hier word de functie uitgevoerd)
/includes/js/core.js (hier staat de functie)
/pages/ (hier staan de files met de HTML erin)

Hier is de code
  1. changePage: function(newContent) {
  2.  
  3. $('#changeable').slideUp('slow', function() {
  4. $("#changeable").html($.load('../../' + newContent)), // Ik weet niet of het pad zo klopt (door de ../../) maar zonder werkt het ook niet
  5. $("#changeable").slideDown('slow');
  6. });
  7.  
  8. }


Ik voer de functie uit als: core.changePage('pages/test.html')

8 antwoorden

Gesponsorde links
Offline Kevin - 15/09/2011 22:25 (laatste wijziging 15/09/2011 23:24)
Avatar van Kevin Crew Ajax/REST Nou, het is helemaal niet nodig om je load functie binnen je html functie te gebruiken. Daar heeft jQuery selectors voor.

Vervang deze lijn door de volgende:
  1. $("#changeable").html($.load('../../' + newContent)),
  2. $("#changeable").load('../../' + newContent),
Offline vinTage - 15/09/2011 22:31 (laatste wijziging 15/09/2011 22:31)
Avatar van vinTage Nieuw lid load 'laad toch in' in het opgegeven element ?
Dus volgens mij het eerder zo:

  1. changePage: function(newContent) {
  2. $('#changeable').slideUp('slow', function() {
  3. $("#changeable").load('../../' + newContent, function(){
  4. $("#changeable").slideDown('slow');
  5. });
  6. }
  7. }



edit, oh ik ben wel wat te laat 
Offline nick5556 - 16/09/2011 08:44 (laatste wijziging 16/09/2011 08:45)
Avatar van nick5556 PHP beginner Dankjullie wel,

Ik heb nu nog een vraagje. Ik heb dit nu zo in elkaar zitten, maar wat er gebeurd is, eerst komt de slideDown, hierna komt pas de HTML in mijn box, ik heb nu dit als functie:

  1. changePage: function(newContent, w, h) {
  2.  
  3. $('#changeable').slideUp('slow', function() {
  4.  
  5. $("#changeable").load(newContent, function () {
  6. $("#changeable").css({
  7. width:0,
  8. height:0
  9. });
  10. $("#container").animate({
  11. width:w
  12. }, function() {
  13. $("#changeable").animate({
  14. opacity: "show",
  15. height: h
  16. }, 'slow');
  17. });
  18. });
  19.  
  20.  
  21. });
  22.  
  23. }


En hier heb ik een voorbeeld: Klik

Het is dus de bedoeling dat als mijn box openschuift, dat de HTML er al in staat.
Offline vinTage - 16/09/2011 09:06
Avatar van vinTage Nieuw lid Ik heb voor mezelf even een simpele versie gemaakt, maar daarin staat wel eerst het content:

  1. <script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
  2. <script>
  3. function changePage(newContent) {
  4.  
  5. $('#changeable').slideToggle('slow', function() {
  6.  
  7. $("#changeable").load(newContent, function () {
  8. $('#changeable').slideToggle('slow');
  9. });
  10.  
  11.  
  12. });
  13.  
  14. }
  15.  
  16. $(document).ready(function() {
  17. changePage("bla.php");
  18. })
  19. </script>
  20.  
  21. <div id="changeable" style="border:solid 1px red; margin: 0 auto; width:400px">hallo, eerste content</div>
Offline nick5556 - 16/09/2011 10:26
Avatar van nick5556 PHP beginner Oke, alles is werkend nu(door wat veranderingen van plaats). Ik heb nog één probleem, hoe zorg ik dat $.load niets cached, ik heb nu namelijk het probleem, dat als ik iets verander op mijn login.html dat dit niet doorgevoerd word, ik heb geprobeerd met $.ajax, maar dit wil ook niet helemaal werken

  1. $.ajax({
  2. url: newContent,
  3. succes: function (content) {
  4. $("#changeable").html(content, function() {
  5. $("#changeable").slideToggle('slow');
  6. });
  7.  
  8. },
  9. cache:false,
  10. error: function(request, error) {
  11. alert("bla" + error);
  12. }
  13. });
Offline vinTage - 16/09/2011 12:19
Avatar van vinTage Nieuw lid
  1. url: newContent+"?rand="+Math.random()*99
Offline nick5556 - 16/09/2011 16:21
Avatar van nick5556 PHP beginner werkt niet, ik krijg geen alert voor de error en ook niet als ik een alert in de succes functie plak.
Offline vinTage - 16/09/2011 16:26 (laatste wijziging 16/09/2011 16:27)
Avatar van vinTage Nieuw lid Dan werkte het op voorhand ook niet...Het enige wat die code doet is een random variable meegeven aan de url die 'opgehaald' moet worden. Random omdat je dan NOOIT met cache zit..

En wat was er mis met het vorige door mij gegeven voorbeeldje? Dat werkt gewoon (evt die random meegeven)
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s