2011-12-31 1 views
0

Je suis fauché par cela ... Je génère un "diaporama" en utilisant le plugin jQuery http://slidesjs.com. Rien d'extraordinaire, sauf, je veux insérer le contenu de la diapositive via un appel ajax. Tout fonctionne bien, le html demandé via ajax est récupéré avec succès, pas d'erreur, sauf que la div contenant le texte n'est pas mise à jour. En d'autres termes, la ligne $().html(data) ci-dessous ne fait rien. Qu'est-ce que je fais mal?jQuery .html() ne pas mettre à jour le div de ciblage

Voici une version très simplifiée du code

<div id="slides"> 
    <div class="slides_container" id="slides_container"></div> 
    <div id="controls"> 
     <a href="#" class="next"><img src="/img/arrow-prev.png"></a> 
     <a href="#" class="prev"><img src="/img/arrow-next.png"></a> 
    </div> 
    <div class="pagination"></div> 
</div> 

<script type="text/javascript"> 
    var FOO = { 
     "Pages": { 
      "0": "Page0", 
      "2": "Text_for_Page_2", 
      "4": "A_Discourse_on_4", 
      "7": "Seven_is_Heaven" 
     } 
    }; 

    $(function() { 
     var str = ""; 
     for (var i = 0; i < 9; i++) { 
      str += '<div class="slide">' + 
        '<div id="#page_' + i + '" class="text"></div>' + 
        '</div>'; 
     } 

     $("#slides_container").html(str); 
    }); 

    $(function(){ 
     $('#slides').slides({ 
      preload: false, 
      effect: 'fade', 
      animationStart: function(current) { 
       if (FOO.Pages[current]) { 
        $.ajax({ 
         url: '/path/to/' + FOO.Pages[current] + '.html', 
         type: 'GET', 
         dataType: 'text', 
         success: function(data) { 

          // The following line does nothing 
          $("#page_" + current).html(data); 
         } 
        }); 
       } 
      } 
     }); 
    }); 
</script> 
+0

L'élément cible existe en premier lieu? –

Répondre

4

Typo dans la fonction ci-dessous

` $(function() { 
    var str = ""; 
    for (var i = 0; i < 9; i++) { 
     str += '<div class="slide">' + 
       '<div id="#page_' + i + '" class="text"></div>' + 
       '</div>'; 
    } 

    $("#slides_container").html(str); 
    }); 

`

changement

'<div id="#page_' + i + '" class="text"></div>' + '</div>';

à

'<div id="page_' + i + '" class="text"></div>' + '</div>';

REMARQUE: la page div id a # avant qu'il ..

+3

Je suis tellement embarrassée. Désolé de gaspiller la bande passante, mais merci, sinon j'aurais gaspillé le reste de cette année restante à me demander ce que je fais mal. – punkish

Questions connexes