Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] IDs dinámicas

Estas en el tema de IDs dinámicas en el foro de Jquery en Foros del Web. Buenas. Esto es algo que ya hice hace tiempo y he intentado buscarlo usando el buscador pero no hay forma de encontrarlo. Espero que con ...
  #1 (permalink)  
Antiguo 20/05/2013, 11:35
 
Fecha de Ingreso: mayo-2013
Ubicación: Barcelona
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
IDs dinámicas

Buenas.

Esto es algo que ya hice hace tiempo y he intentado buscarlo usando el buscador pero no hay forma de encontrarlo. Espero que con este título pueda encontrarlo en un futuro si vuelvo a olvidar como se hacia...

El caso es que estoy modificando algunas cosas de un foro y quiero que las firmas estén en "spoiler". El típico div oculto hasta que haces click en algo. El problema es que firma tiene todo el que postea así que la id es "aleatoria". Utilizo el número de mensaje par que la id sea diferente en cada situación. He buscado por google varias posibles soluciones pero por algun motivo que aun no comprendo, no funcionan.

El último que he probado es esto

Código Javascript:
Ver original
  1. $("#click-sign").click(function(e){
  2.                 e.preventDefault();
  3.                 $(this).next("div").slideToggle("slow");
  4.         });

Y no funciona. Sinceramente yo no veo fallo alguno en este código como para no funcionar. El HTML es el siguiente:

Código HTML:
Ver original
  1. <button id="click-sign"></button>
  2. <div id="sigtopic123"></div>

El número de sigtopic varía según el mensaje. Aparte de este, usando el next, también he probado usando el ^= que si mal no recuerdo, es para condicionar la id y ese lo que hace es buscar una id que comience por tal cosa pero permite que el final pueda variar. Ese seria el caso de sigtopic y tampoco funcionaba, solo funcionaba en el primer mensaje.

No se si alguien sería capaz de decirme cual puede ser el problema. Voy a intentar reescribir el script donde usaba el ^= y lo pondré porque me gustaría saber también por qué no funcionaba.

Gracias a quien decida ayudarme ^^
  #2 (permalink)  
Antiguo 20/05/2013, 11:54
 
Fecha de Ingreso: agosto-2011
Mensajes: 78
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: IDs dinámicas

No entiendo bien cual es tu pregunta... Quieres que al hacer click en un boton, se ponga visible el div siguiente??
__________________
Gimnasia y esgrima de la plata
  #3 (permalink)  
Antiguo 20/05/2013, 12:03
 
Fecha de Ingreso: mayo-2013
Ubicación: Barcelona
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: IDs dinámicas

Cita:
Iniciado por Inmortia Ver Mensaje
El típico div oculto hasta que haces click en algo. El problema es que firma tiene todo el que postea así que la id es "aleatoria". Utilizo el número de mensaje par que la id sea diferente en cada situación.
Lo que quiero es que al hacer click en el botón, el div se muestre pero la id del div no es fija así que no conozco cual es su id y no puedo mostrarlo con un script típico. Necesito que el script comprenda que la id tiene un número que no conozco al final del id.

O cualquier otra técnica que sepáis para mostrar u ocultar con ids que no sean fijas porque si no se van a repetir constantemente.
  #4 (permalink)  
Antiguo 20/05/2013, 12:10
 
Fecha de Ingreso: agosto-2011
Mensajes: 78
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: IDs dinámicas

Si es solo un div con un id que cambia....podes ponerle al div una clase y listo..
<div id="sigtopic123" class="sigtopicClass"></div>

Entonces solo con $(".sigtopicClass").slideToggle("slow") lo podes mostrar
__________________
Gimnasia y esgrima de la plata
  #5 (permalink)  
Antiguo 20/05/2013, 12:22
 
Fecha de Ingreso: mayo-2013
Ubicación: Barcelona
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: IDs dinámicas

Buenas.

He probado lo que me has dicho pero solo funciona en el primer elemento. Las demás firmas siguen sin mostrarse cuando hago click en su botón.

Edito porque lo que esta sucediendo es que el primero botón muestra todas las firmas que es lo que quiero evitar, por eso estaba utilizando ids dinámicas. Alguna posible solución?

Edito de nuevo. Ya esta solucionado. Estaba tambien usando una id fija para el botón así que se duplicaba y habia problemas con eso, un fallo mío pero aparte no funcionaba lo anterior así que dejo el script que sí funciona.

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.         $('.click-sign').click(function() {
  3.             signature = $(this).next().attr("id");
  4.             $("#" + signature).slideToggle("slow");
  5.         });
  6. });

Gracias a enano_la22 que con el consejo de la clase se me ha encendido la bombilla :P

Última edición por Inmortia; 20/05/2013 a las 12:31
  #6 (permalink)  
Antiguo 20/05/2013, 12:33
 
Fecha de Ingreso: agosto-2011
Mensajes: 78
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: IDs dinámicas

Prueba esto:
$(".click-sign").click(function(){
$(this).next("div").slideToggle("slow");
});

En cada boton pone como class= click-sign
<button class="click-sign"></button>
<div id="sigtopic123"></div>
__________________
Gimnasia y esgrima de la plata

Etiquetas: ids
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 12:21.