Estoy haciendo un script para que muestre una porción de un texto cuando pulse sobre un enlace, más concretamente es un menú con noticias, en el cual solo muestro el título de la noticia y quiero que cuando se pulse sobre él se despliegue la descripción de la noticia.
La cosa es que cada noticia va dentro de un <div> y como tengo varias noticias tengo que tener varios <div>, pero la cosa es la siguiente: Como el div es único, solo puede estar nombrado de una única forma, es decir <div id="etiquetaUnica"...>, por lo que he aprovechado el bucle que me he creado para consultar a la base de datos y voy nombrándolos de diferente manera gracias a un contador que me he creado.
Código PHP:
Ver original
$capaefectos = "capaefectos".$i; $mostrar = "mostrar".$i; $ocultar = "ocultar".$i; print($row['titulo']); print(" <a href='#' id='$mostrar'>ver</a>"); print("<div id='$capaefectos' style='background-color: #2489DB; color:#ffffff; padding:10px; display:none;'>"); print("<br> <br>"); print($row['descripcion']); print(" <a href='#' id='$ocultar' style='color:#000000;strength:12'>Ocultar</a>"); print("</div> <p></p>"); $i = $i + 1; }
El script que me he creado para que cuando se pulse en el enlace y se muestre el texto es el siguiente:
Código Javascript:
Ver original
<script src="js/jquery.js" type="text/javascript"></script> <script> var contador = '<?echo $contador;?>' //document.writeln(contador) var n = 1 $(document).ready(function(){ while(n<=contador){ ocultar = '#ocultar'+n //document.writeln(ocultar) mostrar = "#mostrar"+n capaefectos = "#capaefectos"+n $(ocultar).click(function(event){ event.preventDefault(); $(capaefectos).hide("slow"); }); $(mostrar).click(function(event){ event.preventDefault(); $(capaefectos).show(3000); }); n += 1 } }); </script>
Me he echo un contador porque mi idea es tener tantos Ocultar y Mostrar como Noticias tenga en la base de datos para que así tuviera un <div> para cada noticia, pero la cosa es que si pongo un bucle en el script lo que consigo es que solo tenga un Ocultar y Mostrar (con el valor del número de Noticias que dispongo en la BBDD, es decir que si tengo 5 noticias ocultar sería: ocultar5,...) y no tenga cada ocultar y mostrar como noticias disponga. Es decir quisiera algo parecido a que si dispongo de dos noticias pues tuviera algo parecido a esto
Código Javascript:
Ver original
$(ocultar1).click(function(event){ event.preventDefault(); $(capaefectos1).hide("slow"); }); $(mostrar1).click(function(event){ event.preventDefault(); $(capaefectos1).show(3000); }); $(ocultar2).click(function(event){ event.preventDefault(); $(capaefectos2).hide("slow"); }); $(mostrar2).click(function(event){ event.preventDefault(); $(capaefectos2).show(3000); });
Muchas gracias y sobretodo espero a verme explicado bien
Gracias.