Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] evento on click no hace nada :(

Estas en el tema de evento on click no hace nada :( en el foro de Jquery en Foros del Web. Muy buenas, soy nuevo en el foro, y este es mi primer post.. ¡Hola a todos! y gracias de antemano Al tema. Estoy estudiando jQuery, ...
  #1 (permalink)  
Antiguo 25/11/2015, 16:49
 
Fecha de Ingreso: noviembre-2015
Mensajes: 9
Antigüedad: 9 años
Puntos: 0
Exclamación evento on click no hace nada :(

Muy buenas, soy nuevo en el foro, y este es mi primer post.. ¡Hola a todos! y gracias de antemano
Al tema. Estoy estudiando jQuery, y me he encontrado con el mismo problema en un par de ejercicios, y no encuentro la solución.

El problema es que pulsando un button creo varios div, dentro de otro div contenedor. hasta ahí perfecto, luego asigno un evento on click sobre los diferentes divs que creé dentro de este div contenedor de esta manera --> $('#contenedor div'), y no hace absolutamente nada.


Esto es una simplificación del programa.
Código:
	$(document).ready(function () {
	    $('button').on({
	        click: function () {
	            for (var i = 0; i < 20; i++) {
	                var nuevaCapa = $('<div></div>');
	                nuevaCapa.addClass('capa').attr('id', 'capa' + i);
	                $('#content').append(nuevaCapa);
	            }
	        }
	    });
	    $('#content div').on({
	        click: function () {
	            $(this).remove();
	        }
	    });
	});
Código HTML:
<body>
      <button id="comenzar">Comenzar</button>
      <div id="content"></div>
</body> 
Muchas gracias a todos de antemano.
  #2 (permalink)  
Antiguo 25/11/2015, 17:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: evento on click no hace nada :(

Bienvenido a Foros del Web.

No funciona porque dicha instrucción cargó antes de que lo hagan los elementos que añadiste. La solución está en delegar el evento al elemento que contiene a los elementos añadidos.

Código Javascript:
Ver original
  1. $("#contenedor").on("click", "div", function(){
  2.     //$(this) representará a cada <div> pulsado que se encuentre dentro del contenedor
  3. });

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 25/11/2015, 21:38
Avatar de siddartha23  
Fecha de Ingreso: septiembre-2013
Mensajes: 357
Antigüedad: 11 años, 2 meses
Puntos: 39
Respuesta: evento on click no hace nada :(

¿No es un error de sintaxis?
Código Javascript:
Ver original
  1. // en vez de ...
  2. $('button').on({
  3.                click : function(){...}
  4. }
  5. // escribe ...
  6.  $('button').on('click', function(){...});
__________________
velarde23.com - Soluciones Web
  #4 (permalink)  
Antiguo 25/11/2015, 21:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: evento on click no hace nada :(

Cita:
Iniciado por siddartha23 Ver Mensaje
¿No es un error de sintaxis?
No lo es. De esa manera, puedes registrar varios eventos a la selección realizada.

Código Javascript:
Ver original
  1. $("selector").on({
  2.     evento1: function(){
  3.         //Instrucciones
  4.     },
  5.     evento2: function(){
  6.         //Instrucciones
  7.     },
  8.     eventoN: function(){
  9.         //Instrucciones
  10.     }
  11. });

Fíjate en el penúltimo ejemplo grande: Método .on().

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 26/11/2015, 02:32
 
Fecha de Ingreso: noviembre-2015
Mensajes: 9
Antigüedad: 9 años
Puntos: 0
Respuesta: evento on click no hace nada :(

Cita:
Iniciado por Alexis88 Ver Mensaje
Bienvenido a Foros del Web.

No funciona porque dicha instrucción cargó antes de que lo hagan los elementos que añadiste. La solución está en delegar el evento al elemento que contiene a los elementos añadidos.

Código Javascript:
Ver original
  1. $("#contenedor").on("click", "div", function(){
  2.     //$(this) representará a cada <div> pulsado que se encuentre dentro del contenedor
  3. });

Un saludo
Muchas gracias Alexis88 , ese era el problema, ya funciona perfectamente, y gracias por la rapidez ;).

Etiquetas: contenedor, onclick
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 19:15.