2013-02-20 4 views
0

Cela a probablement une réponse simple, mais je n'arrive pas à la trouver nulle part. Je charge un fichier HTML local dans une superposition modale. Le fichier HTML contient un diaporama. Je voudrais définir une variable et y accéder dans le HTML chargé pour savoir quelle diapositive pour commencer.Accéder à une variable en HTML chargée avec Jquery .load()

J'ai essayé de l'envoyer avec l'URL en tant que variable GET. J'ai essayé de l'envoyer après l'URL entre accolades et de récupérer comme POST. J'ai essayé de définir une variable globale, mais je suis à peu près certain qu'elle est hors de portée, et je n'arrive pas à l'obtenir de toute façon.

Voici une partie pertinente:

$(document).ready(function() { 

    $("a.slide0").click(function() { 
     $('#revealLayer').load('slideshow1.html?slide=0'); 
     $('#revealLayer').appendTo('#revealModal'); 
     $('#revealModal').reveal(); 
     return false; 
    }); 

    $("a.slide1").click(function() { 
     $('#revealLayer').load('slideshow1.html?slide=1'); 
     $('#revealLayer').appendTo('#revealModal'); 
     $('#revealModal').reveal(); 
     return false; 
    }); 

}); 

Comment puis-je obtenir ceci sur la réception? Aidez-moi!

Répondre

1

déjà expliqué comment faire dans ce post ici: problems with jquery load()

rapide Mockup (non testé):

Cela suppose que #revealModal est le div que vous voulez le i nformation dans, et que slideshow1.html? slide = [0-1] urls sont en fait la liaison aux fichiers PHP.

$(document).ready(function() { 
    $("a.slide0").click(function() { 
     $('#revealModal').load('slideshow1.html', {slide:'0'}, function(){ 
      $(this).reveal(); 
      return false; 
     }); 
    }); 

    $("a.slide1").click(function() { 
     $('#revealModal').load('slideshow1.html', {slide:'1'}, function(){ 
      $(this).reveal(); 
      return false; 
     }); 
    }); 
}); 

Le slideshow1.html? Slide = 1 et slideshow1.html? Slide = 0 devra gérer la variable $_POST['slide'] en PHP pour cela.

+0

Malheureusement, le serveur sur lequel cela va vivre n'a pas PHP installé. J'espérais travailler sur une solution Javascript. Ils ont ColdFusion, donc je pourrais probablement le faire avec ça. Je l'évite juste parce que je déteste CF. – Imaginary

+0

Juste essayer et laissez-moi savoir comment ça se passe. Est-ce que cette URL fournit quelque chose de différent lorsque vous naviguez dans le navigateur? Si 'slide' est 0 et 1? Sont-ils tous les deux en train de retourner le même contenu ou un contenu différent? Mon intuition est que vous n'aurez pas besoin de s'inquiéter de la php ... –

+0

Vous pouvez également essayer de se débarrasser des citations sur les nombres «0» et «0» –

0

Vous devriez peut-être utilisé le paramètre thirs de la méthode load() avec est un rappel qui sera appelée lorsque le processus de chargement est terminé (équivalent au prêt()).

Essayez ceci:

$("a.slide0").click(function() { 
    $('#revealLayer').load('slideshow1.html?slide=0', 
          {}, 
          function(response, status, whr) { 
     $('#revealLayer').appendTo('#revealModal'); 
     $('#revealModal').reveal(); 
    }); 

    // Cancel the click 
    return false; 
}); 

La définition de la méthode est:

.load(url [, data ] [, complete(responseText, textStatus, XMLHttpRequest) ]) 
+0

C'est le genre de réponse que j'ai trouvé, donc je ne doute pas de vous, mais je ne peux pas comprendre comment cela résout mon problème. Je pourrais juste être épais dans ma compréhension de ce que fait un rappel. Avec cette structure, comment aurais-je maintenant accès à la valeur de "slide" (qui devrait être zéro) dans le contenu chargé avec jQuery? – Imaginary

+0

@Imaginary - la variable 'slide' et toutes les autres variables doivent être gérées dans le 2ème paramètre de l'appel de la méthode' .load() 'pour pouvoir l'attraper via' $ _POST'. –

+0

Vous êtes dans une fonction qui sera appelée lorsque le contenu est chargé, lié au clic de votre lien a.slide0, donc dans ce rappel vous connaissez votre diapositive (?). – MatRt

Questions connexes