la clase no funciona en jQuery anteponer

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

preguntado el 29 de mayo de 12 a las 12:05

¿Puedes mostrar el código para agregar el nuevo elemento? Llamas fancybox antes o después de agregar este nuevo artículo? -

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 -

2 Respuestas

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

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 or haz tu propia pregunta.