En jQuery, ¿cómo adjuntar eventos a elementos html dinámicos? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
- Enlace de eventos en elementos creados dinámicamente? 23 respuestas
Supongamos que tengo algún código jQuery que adjunta un controlador de eventos a todos los elementos con la clase "myclass". Por ejemplo:
$(function(){
$(".myclass").click( function() {
// do something
});
});
Y mi html podría ser el siguiente:
<a class="myclass" href="#">test1</a>
<a class="myclass" href="#">test2</a>
<a class="myclass" href="#">test3</a>
Eso funciona sin ningún problema. Sin embargo, considere si el elementos de "myclass" fueron escritos en la página en algún momento futuro.
Por ejemplo:
<a id="anchor1" href="#">create link dynamically</a>
<script type="text/javascript">
$(function(){
$("#anchor1").click( function() {
$("#anchor1").append('<a class="myclass" href="#">test4</a>');
});
});
</script>
En este caso, el enlace "test4" se crea cuando un usuario hace clic en un#anchor1.
El enlace "test4" no tiene asociado el manejador click (), aunque tenga class="myclass".
¿Alguna idea de cómo puedo arreglar esto?
Básicamente, me gustaría escribir el manejador click() una vez y hacer que se aplique tanto al contenido presente en la carga de la página como al contenido traído más tarde a través de Ajax / DHTML.
Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32
Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52