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,
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)
;
Change var $q = $('
'); to var $q = $('
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} ); };