Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] No puedo detectar un evento

Estas en el tema de No puedo detectar un evento en el foro de Jquery en Foros del Web. Buenas, Tengo un problema. A través de jquery, al inicio, ejecuto una función en php, que genera un listado de checkboxs con los barrios de ...
  #1 (permalink)  
Antiguo 30/08/2015, 04:38
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 11 meses
Puntos: 4
No puedo detectar un evento

Buenas,
Tengo un problema. A través de jquery, al inicio, ejecuto una función en php, que genera un listado de checkboxs con los barrios de mi ciudad. El value de dichos checkboxs es el código postal al que pertencen.

Un checkbox de los que se crean es así:

Código HTML:
Ver original
  1. <input type="checkbox" class="barrio" value="99999">

No tengo problema en obtener todos los que están seleccionados

Código Javascript:
Ver original
  1. $(".barrio").each(function() {
  2.     if (this.checked)  
  3.              ....
  4. });

Pero no hay manera de detectar cuando lo seleccionan o deseleccionan. Lo hago así:

Código Javascript:
Ver original
  1. $(".barrio").change(function(){
  2.     alert("hola");
  3. });

Alguien sabe por qué no funciona el evento change del barrio?

Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 30/08/2015, 06:18
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 3 meses
Puntos: 578
Respuesta: No puedo detectar un evento

Para obtener los seleccionados te recomiendo usar el selector :checked

Código Javascript:
Ver original
  1. $(".barrio:checked")

Lo último que dices, prueba a delegar el evento mediante on("change", ...).
  #3 (permalink)  
Antiguo 30/08/2015, 10:51
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 11 meses
Puntos: 4
Mensaje Respuesta: No puedo detectar un evento

Gracias PHperos, he probado

Código Javascript:
Ver original
  1. $(".barris").on('change', function(){
  2.     alert("hola");
  3. });

Y nada, no detecta el click

Tengo otros checboxs con lo que no tengo problema en controlar los eventos. La diferencia es que estos los he escrito directamente en html, y los de los barrios, los creo leyendo la base de datos, y esto lo hago cuando se carga el documento, es decir:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.         $.post("<?php echo URL.'includes/inc_getBarrios.php'?>", function(data){$("#losBarrios").html(data);});
  3.         ....
  4. }

Desconozco si el problema está que jquery no detecta los eventos de los objetos creados dinámicamente.

En cuanto a la segurencia del :checked, lo hago ahora. Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Última edición por mblascog; 30/08/2015 a las 11:53
  #4 (permalink)  
Antiguo 30/08/2015, 13:28
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 11 meses
Puntos: 4
Respuesta: No puedo detectar un evento

Buenas,
Por si es de interés de alguien, el problema es que al generar los inputs dinámicamente, jquery no los detecta.
Para ello hay que actuar a nivel de document, de la siguiente forma funciona:

Código Javascript:
Ver original
  1. $(document).on('change', ".barrios", function() {
  2.     alert("hola");
  3. });
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Etiquetas: evento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:20.