Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Problemas al cambiar la clase de un button

Estas en el tema de Problemas al cambiar la clase de un button en el foro de Jquery en Foros del Web. Llevo unas cuantas horas intentando resolver esto y no soy capaz, así que a ver si alguno de vosotros acabáis con mi desesperación. Tengo dos ...
  #1 (permalink)  
Antiguo 01/06/2014, 18:59
 
Fecha de Ingreso: junio-2014
Mensajes: 2
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Problemas al cambiar la clase de un button

Llevo unas cuantas horas intentando resolver esto y no soy capaz, así que a ver si alguno de vosotros acabáis con mi desesperación.

Tengo dos section, uno a la izquierda y otro a la derecha, en el de la izquierda se me van a cargar usuarios desde la base de datos, cada usuario va a ir dentro de un div, cada uno con un botón con value "+" y con una clase "clase1" , al dar al botón "+" quiero que se me pase al div de la derecha el div de ese usuario y me cambie el value a "-" y me cambie la clase del botón a "clase2". El motivo por el que quiero cambiar el nombre de la clase es para que si hago click en el botón "-" me vaya a la función que cambia del div de la derecha al de la izquierda. El problema está en que aunque me cambia la clase del botón sigue yendo a $('.clase1').click(function(){} a partir de aquí pongo el código.

pagina1.php

Código HTML:
Ver original
  1. <section id="sec_1" class="sec_1">
  2. <div id="div_'.$row['nickname'].'" class="div_'.$row['nickname'].'"><input type="button" id="'.$row['nickname'].'" value="+"     class="clase1">'.$row['nickname'].'</div>
  3.  
  4. <section id="sec_2" class="sec_2"></section>


paginajs.js

Código Javascript:
Ver original
  1. $('.clase1').click(function(){
  2.  
  3.         $("#"+this.id).prop('value', '-');
  4.         $("#"+this.id).removeClass('clase1');
  5.         $("#"+this.id).addClass('clase2');
  6.         $("#div_"+this.id).appendTo("#sec_2");
  7.  
  8.         });
  9.  
  10. $('.clase2').click(function(){
  11.  
  12.         $("#"+this.id).prop('value', '+');
  13.         $("#"+this.id).removeClass('clase2');
  14.         $("#"+this.id).addClass('clase1');
  15.         $("#div_"+this.id).appendTo("#sec_1");
  16.  
  17.         });

He comprobado con un alert y también mediante css(asignando un color a cada clase) que si me está cambiando la clase del botón al pasar de un section a otro, pero aunque me lo cambia, cuando hago click en el botón "-" me entra a la función de clase1 y no a la de clase2 aunque tenga la clase con nombre2. No se si me he explicado bien. Espero que me podáis resolver el problema.

Muchas gracias de antemano, soy nuevo en este foro y espero poder ser yo el que resuelva problemas a alguien la próxima vez.

Última edición por Leombard; 01/06/2014 a las 19:13
  #2 (permalink)  
Antiguo 06/06/2014, 18:11
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 10 años, 9 meses
Puntos: 32
Respuesta: Problemas al cambiar la clase de un button

no entiendo muy bien que deberia imprimir ya que pusiste codigo php xD a la siguiente pon solo como te pinta el html
bueno el problema deseguro es por que estas crenado elementos dinamicamente y

Código Javascript:
Ver original
  1. $('.clase2').click(function(){

usa para esos casos

Código Javascript:
Ver original
  1. $(document).on('click','.clase2',function(){
  #3 (permalink)  
Antiguo 06/06/2014, 23:49
 
Fecha de Ingreso: junio-2014
Mensajes: 2
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Problemas al cambiar la clase de un button

Muchísimas gracias andresgarciadev, era justo eso, después me di cuenta que era por estar creando elementos dinámicamente como bien has dicho y lo cambié por:

Código Javascript:
Ver original
  1. $('.clase1')on.('click', function(){});

Pero me seguía dando el mismo problema. De la manera que me has dicho tú va perfecto. Muchas gracias porque me estaba dando muchos quebraderos de cabeza. Un saludo.

Etiquetas: button, clase, input, javascript, js, php
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 09:40.