Problema de jquery. después de recargar

<script type="text/javascript">
var auto_refresh = setInterval(
function()
{
$('#data').load('data.php');
}, 10000);

$(".banit").click(function() {
var namer= $(this).val();
alert(namer);

});

</script>

Los datos de data.php se cargan en div con datos de identificación cada 10 segundos, estos datos tienen botones (en bucle y repetidos en php) con la clase banit. y el botón banit tiene algo de valor ... este valor algo tiene que ser alertado.

ahora, una vez que se abre la página, ¡este botón funciona y alerta bien! pero una vez que se recargan los datos, ¡deja de funcionar! ¡por favor ayuda!

preguntado el 08 de enero de 11 a las 21:01

2 Respuestas

Cuando usted llama $('#data').load('data.php');, destruyes todos los elementos secundarios de #data, incluido el botón y su controlador de clic.

Tienes que volver a vincular el evento de clic después de cargar el nuevo contenido o usar live:

$(".banit").live('click', function() {
    var namer= $(this).val();
    alert(namer);
});

Controladores de eventos vinculados con live funcionará para todos los actuales y futuros elementos DOM.

Respondido el 09 de enero de 11 a las 00:01

Como dice piquadrat, tienes que volver a vincular el controlador cada vez, pero prefiero usar el método "delegar" como dice paul irish aquí: http://www.slideshare.net/paul.irish/perfcompression (diapositiva 34 a 38).

Respondido el 09 de enero de 11 a las 00:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.