Lightgallery: Cargar galería con AJAX

Creado en 20 nov. 2015  ·  5Comentarios  ·  Fuente: sachinchoolur/lightGallery

Cuando obtengo imágenes con ajax, me da el error "TypeError: a is undefined" Pero si agrego un enlace de código duro de imágenes como esta en "dynamicEl: [{" src ":" mlphotos / imgs / 564d982d2bed1_kosta.jpg "," thumb ":" mlphotos / imgs / 564d982d2bed1_kosta.jpg ",}]" Entonces funciona bien,

-> Pero quiero cargar imágenes con ajax a continuación son mi código

A continuación se muestra mi código, ayúdame, ¿cuál es el problema aquí?

$ .ajax ({
url: "ajax_viewlarge_click",
tipo: 'POST',
dataType: "json",
éxito: función (datos) {
// -------------------------
foto dinámica = '';
para (var i = 0; i <data.length; i ++) {
foto dinámica + = '{"src": "' + datos [i] + '", "pulgar": "' + datos [i] + '",},';
}
$ .getScript ($ ('# baseUrl'). val () + "/ application / layouts / scripts / themes / trailblazer / js / lg / lightgallery.min.js", function (datas, textStatus, jqxhr) {
var imágenes = "[" + foto dinámica + "]";
$ (esto) .lightGallery ({
dinámico: verdadero,
html: verdadero,
dynamicEl: fotografías
});
});
},
error: función (e) {
console.log ("¡Fallo del servidor! ¿Está apagado el servidor?");
}
});

Todos 5 comentarios

Creo que estoy experimentando un problema similar. Inicialmente cargo n imágenes y emito una solicitud AJAX en el desplazamiento para obtener más imágenes. Las cinco imágenes iniciales funcionan bien, pero las nuevas no obtienen la funcionalidad (hacer clic en ellas me lleva a la URL de la imagen).

Estoy llamando a $ ('. Container) .lightGallery ({...}); de nuevo en el éxito de AJAX: función (res) {...}.

También estoy usando el complemento Wookmark

Me las arreglé para resolver esto destruyendo correctamente la galería y cargándola nuevamente en el éxito de AJAX: function (res) {...}

Forma adecuada de destruir la galería:
$ lg = $ ('. contenedor');

// destruir
$ lg.data ('lightGallery'). destroy (verdadero);

Queremos actualizar los elementos mientras se abre la galería. Digamos que tenemos una carga más o navegamos hasta el final de los elementos actuales.

Actualmente $lg.data('lightGallery').destroy(true); cerrará la galería y volverá a crear una instancia de la galería. He hecho una solución temporal para solucionar este problema. ver: https://github.com/reillo/rebuild-lightGallery

¿Podría decirme si tiene una mejor solución para este escenario?

Hola @reillo ,
En la actualidad, no es posible. Pero intentaré incluir un método de actualización en el futuro.

@sachinchoolur ¿ Algún plan de este método futuro?

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Allmedialab picture Allmedialab  ·  10Comentarios

elboletaire picture elboletaire  ·  13Comentarios

tpaksu picture tpaksu  ·  9Comentarios

bridgemove picture bridgemove  ·  19Comentarios

superfein picture superfein  ·  9Comentarios