Images chargées d’Ajax dans le carrousel ‘elastislide’

Images chargées via ajax comme ceci: Les images sont contenues dans des balises

$('#sandbox').load('./ajax/profile.html li a:eq(1),li a:eq(2),li a:eq(3)').hide(); 

Maintenant, je veux injecter les images avec leurs étiquettes dans un carrousel appelé “elastislide”. Le code ci-dessous fonctionne, aidez-moi!

 for (k=0; k<=$('#sandbox').children().length;k++){ var ajaximg = $('#sandbox').children()[k]; var $q = $('
  • '+ajaximg+'
  • '); $('#carousel3').append($q); $('#carousel3').elastislide( 'add', $q ); };

    Il y a deux points où vous avez besoin d’une modification IMO,

    1. var ajaximg = $('#sandbox').children()[k] vous donne un élément DOM et non un object jQuery; vous pouvez utiliser var ajaximg = $('#sandbox').children().eq(k) place; mais il vaut mieux utiliser $(this) ;

    2. Change var $q = $('

    3. '+ajaximg+'
    4. '); to var $q = $('

    5. ').append($(this));

    Votre code serait

      for (k=0; k<=$('#sandbox').children().length;k++){ // var ajaximg = $('#sandbox').children()[k]; var $q = $('
  • ').append($(this)); $('#carousel3').append($q); $('#carousel3').elastislide( 'add', $q ); };
  • Le code ci-dessus pourrait être corrigé avec le code suivant:

     $('#sandbox').load('./ajax/profile.html li a', function(result){ $(result).find('li a').each(function(){ var $q = $('
  • ').append($(this)); $('#carousel3').append($q); $q.add(); }); });
  • L’idée était de charger des images dans #carousel via ajax, donc le code ci-dessous le fait tout sans charger d’abord dans #sandbox. Il est important que la fonction .elastislide () soit appelée lors du chargement du document, comme indiqué ci-après, car les images figurant dans

  • ont été ajoutées. Sinon, le carrousel ne les montrera pas.

     $('#carousel3').load('./ajax/profile.html li'); window.onload = initStyle; function initStyle() { $( '#carousel1' ).elastislide( {minItems : 2} ); $( '#carousel2' ).elastislide( {minItems : 2} ); $( '#carousel3' ).elastislide( {minItems : 2} ); };