Tengo una sección del sitio WEB que se sobreescriben botones, no apareciendo y desapareciendo sino agregando y eliminando para ahorrar memoria ya que son muchisimos botones.
Mi duda es la siguiente:
Cáda ves que aparece un botón este debe realizar una acción al hacer click por lo tanto cómo puedo definirle la función?
Si intento darle una propiedad onclick="funcion()" no me funciona ya que funcion() está definida dentro de $(document)ready(function(){... por lo tanto no es accesible desde afuera.
Lo otro que intento es crear un $('#boton').click(function(){... pero al eliminar el botón se elimina la asociación de la función con el botón y al hacer aparecer uno nuevo queda sin asociación.
Para solucionar esto lo que hice fue una función llamada reDOM(){ ... } que incluye todas las asociaciones con los botones...
Código
function reDom(){ $('.boton').each(function(){ $(this).click(function(){ // Accion }); }); }
Hasta ahi todo bién, funciona de lujo porque cáda ves que elimino y agrego un botón llamo la función reDOM() y vuelve a asociar las funciones a los nuevos inputs incluyendo a los inputs que ya estaban.
Mi duda es la siguiente...
Cuando se desasocian o sea se elimina el botón y aparece otro esta asociación queda en memoria o automaticamente se elimina? es necesario hacer un unbind antes de eliminar el botón? ya que son mcuhos botones que aparecen y desaparecen y si quedan en memoria entonces va a causar que con el tiempo la web se vea lenta y me haga refrescar forzadamente.
El caso de los botones era solo un ejemplo ya que en la práctica son divisiones de una barra de busqueda que se renueva en cáda petición Ajax con $('#barra').html(request.barr) y necesito asociar las acciones a cáda división, pasar el mouse por encima, hacerle click, etc, pero me preocupa si las funciones aun están quedando en el DOM o se van eliminando solas.
Gracias para el que me pueda ayudar.