la clase no funciona en jQuery anteponer
Frecuentes
Visto 429 veces
1
Estoy anteponiendo un elemento de la lista <li>
a mi <ul>
en mi código jQuery y en el antepuesto <li>
Tengo un enlace de texto que llama a fancybox.
Cualquier elemento en el que se haga clic con la clase 'fb' adjunta llamará y abrirá fancybox, solo el elemento de lista recién agregado con enlace de texto no abrirá fancy box.
Así que esto es lo que tengo en la anteposición
<a class='fb' href='viewtopic?id="+nextlistid+"'>"+title+"</a>
Intenté eliminar (class = 'fb') del enlace y, en cambio, le di una identificación única que luego intenté agregar $("theuniqueid").addClass("fb");
pero eso tampoco pareció hacerlo.
Aquí está el código de fancybox (que funciona)
$(".fb").fancybox({
'padding': 0,
'autoScale': false,
'transitionIn': 'none',
'transitionOut': 'none',
'overlayColor': '#f7f7f7',
'overlayOpacity': 0.5
});
¿Alguna idea sobre cómo hacer que la clase se adjunte al elemento recién agregado?
Gracias por adelantado
2 Respuestas
2
Tienes que volver a vincular la función de cuadro elegante nuevamente. una vez que agrega algún elemento dinámicamente ( prepend
aquí). Algo como esto.
$("#thatDiv").prepend("<a class='fb' href='viewtopic?id="+nextlistid+"'>"+title+"</a>");
$(".fb").fancybox({
'padding': 0,
'autoScale': false,
'transitionIn': 'none',
'transitionOut': 'none',
'overlayColor': '#f7f7f7',
'overlayOpacity': 0.5
});
Probablemente movería el código de enlace a una función genérica para poder llamarlo desde muchos lugares.
contestado el 29 de mayo de 12 a las 12:05
0
Creo que deberías volver a llamar a tu caja lujosa método en su enlace agregado recientemente. Por ejemplo:
var li = $("<li></li>").addClass("fb");
$(ul).prepend(li);
li.fancybox({/*...*/});
De hecho, agregó dinámicamente su artículo reciente y el anterior $(".fb") selector no incluyó su elemento de lista recién creado.
contestado el 29 de mayo de 12 a las 12:05
Gracias por la respuesta, Johnathan, el problema parecía ser un problema vinculante, gracias por responder: Woz
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas jquery or haz tu propia pregunta.
¿Puedes mostrar el código para agregar el nuevo elemento? Llamas
fancybox
antes o después de agregar este nuevo artículo? - lonesomedayEcha un vistazo a esto stackoverflow.com/questions/9081571/… - Prasenjit Kumar Nag
No llamo a fancy box cuando se agrega el nuevo elemento, es decir, no es un disparador para abrir fancybox. Solo quería que la clase se adjunte al enlace recién creado para cuando el usuario haga clic en él, lo que a su vez abrirá fancybox, gracias por la respuesta. por cierto - Woz