Buenas posteo para escribir la solución al problema que tenía y que ya conseguí solucionar, para quien le pueda servir.
Cuando generas código extra de forma dinámica fuera del código original de tu web con métodos de jquery como $.ajax, $.post o $.get como hacía yo de esta forma:
Código:
function mostrar(){
$.post("archivo",function(result){
$("element").html(result);
});}
Siendo archivo el fichero externo donde generas el código y element la etiqueta html donde insertarlo.
Si quieres aplicar un efecto jquery a esos elementos de forma normal no funcionará, ya que ese contenido ha sido generado aparte y no forma parte del árbol DOM. Para poder aplicarle un efecto hay que usar el método on()
[URL="https://api.jquery.com/on/"]https://api.jquery.com/on/[/URL]
De la siguiente forma:
Código:
$("elemento1").on("evento", "elemento2", function(){
//Código a ejecutar
});
Siendo elemento1 el contenedor y elemento2 los generados dinamicamente sobre los que se le aplica el efecto. Por ejemplo:
Código:
<div id="elemento1">
<a class="elemento2" href="#">Enlace1</a> // Este es el
<a class="elemento2" href="#">Enlace2</a> // contenido generado
<a class="elemento2" href="#">Enlace3</a> // dinamicamente.
</div>
"evento" se refiere al disparador del efecto, como click, blur o keyup.
Espero le sirva de ayuda a alguien, tal vez os parezca algo muy básico pero a mí me ha llevado un par de días, ni siquiera sabía que existía ese método on() ni que jquery no afectaba a contenido generado aparte.
Un saludo